about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/feature-gate-inline_const.rs2
-rw-r--r--src/test/ui/feature-gate-inline_const.stderr8
-rw-r--r--src/test/ui/inline-const/const-expr-array-init.rs9
-rw-r--r--src/test/ui/inline-const/const-expr-basic.rs (renamed from src/test/ui/parser/inline_const/const_expr_parses.rs)7
-rw-r--r--src/test/ui/inline-const/const-expr-reference.rs14
-rw-r--r--src/test/ui/inline-const/const-match-pat.rs20
-rw-r--r--src/test/ui/parser/inline_const/const_match_pat_parses.rs20
7 files changed, 55 insertions, 25 deletions
diff --git a/src/test/ui/feature-gate-inline_const.rs b/src/test/ui/feature-gate-inline_const.rs
index 76762489f3a..43ff90d234c 100644
--- a/src/test/ui/feature-gate-inline_const.rs
+++ b/src/test/ui/feature-gate-inline_const.rs
@@ -1,6 +1,6 @@
 fn main() {
     let _ = const {
-        //~^ ERROR expected expression, found keyword `const`
+        //~^ ERROR inline-const is experimental [E0658]
         true
     };
 }
diff --git a/src/test/ui/feature-gate-inline_const.stderr b/src/test/ui/feature-gate-inline_const.stderr
index b9498e22585..be2f567155c 100644
--- a/src/test/ui/feature-gate-inline_const.stderr
+++ b/src/test/ui/feature-gate-inline_const.stderr
@@ -1,8 +1,12 @@
-error: expected expression, found keyword `const`
+error[E0658]: inline-const is experimental
   --> $DIR/feature-gate-inline_const.rs:2:13
    |
 LL |     let _ = const {
-   |             ^^^^^ expected expression
+   |             ^^^^^
+   |
+   = note: see issue #76001 <https://github.com/rust-lang/rust/issues/76001> for more information
+   = help: add `#![feature(inline_const)]` to the crate attributes to enable
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/inline-const/const-expr-array-init.rs b/src/test/ui/inline-const/const-expr-array-init.rs
new file mode 100644
index 00000000000..8a92cdbc0f9
--- /dev/null
+++ b/src/test/ui/inline-const/const-expr-array-init.rs
@@ -0,0 +1,9 @@
+// build-pass
+
+#![feature(inline_const)]
+
+use std::cell::Cell;
+
+fn main() {
+    let _x = [const { Cell::new(0) }; 20];
+}
diff --git a/src/test/ui/parser/inline_const/const_expr_parses.rs b/src/test/ui/inline-const/const-expr-basic.rs
index 5319db3482d..9349cee62d6 100644
--- a/src/test/ui/parser/inline_const/const_expr_parses.rs
+++ b/src/test/ui/inline-const/const-expr-basic.rs
@@ -1,5 +1,4 @@
-// check-pass
-// compile-flags: -Z parse-only
+// run-pass
 
 #![feature(inline_const)]
 fn foo() -> i32 {
@@ -8,3 +7,7 @@ fn foo() -> i32 {
         x / 3
     }
 }
+
+fn main() {
+    assert_eq!(5, foo());
+}
diff --git a/src/test/ui/inline-const/const-expr-reference.rs b/src/test/ui/inline-const/const-expr-reference.rs
new file mode 100644
index 00000000000..a54d879f69d
--- /dev/null
+++ b/src/test/ui/inline-const/const-expr-reference.rs
@@ -0,0 +1,14 @@
+// run-pass
+
+#![feature(inline_const)]
+
+const fn bar() -> i32 {
+    const {
+        2 + 3
+    }
+}
+
+fn main() {
+    let x: &'static i32 = &const{bar()};
+    assert_eq!(&5, x);
+}
diff --git a/src/test/ui/inline-const/const-match-pat.rs b/src/test/ui/inline-const/const-match-pat.rs
new file mode 100644
index 00000000000..d4761398d73
--- /dev/null
+++ b/src/test/ui/inline-const/const-match-pat.rs
@@ -0,0 +1,20 @@
+// run-pass
+
+#![feature(inline_const)]
+const MMIO_BIT1: u8 = 4;
+const MMIO_BIT2: u8 = 5;
+
+fn main() {
+    let s = match read_mmio() {
+        0 => "FOO",
+        const { 1 << MMIO_BIT1 } => "BAR",
+        const { 1 << MMIO_BIT2 } => "BAZ",
+        _ => unreachable!(),
+    };
+
+    assert_eq!("BAZ", s);
+}
+
+fn read_mmio() -> i32 {
+    1 << 5
+}
diff --git a/src/test/ui/parser/inline_const/const_match_pat_parses.rs b/src/test/ui/parser/inline_const/const_match_pat_parses.rs
deleted file mode 100644
index 97b05b0a1f2..00000000000
--- a/src/test/ui/parser/inline_const/const_match_pat_parses.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-// check-pass
-// compile-flags: -Z parse-only
-
-#![feature(inline_const)]
-const MMIO_BIT1: u8 = 4;
-const MMIO_BIT2: u8 = 5;
-
-fn main() {
-    match read_mmio() {
-        0 => {}
-        const { 1 << MMIO_BIT1 } => println!("FOO"),
-        const { 1 << MMIO_BIT2 } => println!("BAR"),
-
-        _ => unreachable!(),
-    }
-}
-
-fn read_mmio() -> u8 {
-    1 << 5
-}