about summary refs log tree commit diff
path: root/src/test/ui/consts
diff options
context:
space:
mode:
authorOliver Scherer <github35764891676564198441@oli-obk.de>2019-08-21 02:23:46 +0200
committerOliver Scherer <github35764891676564198441@oli-obk.de>2019-09-24 12:56:44 +0200
commit7767e7fb165d527f1991175809a361f2d2313b80 (patch)
treee2e776a76307c183bb2a762a2b1f630b71339b68 /src/test/ui/consts
parent7fdea7a72abb9f5a58fdc19c0a298042291c53b2 (diff)
downloadrust-7767e7fb165d527f1991175809a361f2d2313b80.tar.gz
rust-7767e7fb165d527f1991175809a361f2d2313b80.zip
Stabilize `str::len`, `[T]::len`, `is_empty` and `str::as_bytes` as const fn
Diffstat (limited to 'src/test/ui/consts')
-rw-r--r--src/test/ui/consts/const-eval/strlen.rs12
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.rs2
-rw-r--r--src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.stderr8
3 files changed, 15 insertions, 7 deletions
diff --git a/src/test/ui/consts/const-eval/strlen.rs b/src/test/ui/consts/const-eval/strlen.rs
index 6a5cad82c3a..7b14a523543 100644
--- a/src/test/ui/consts/const-eval/strlen.rs
+++ b/src/test/ui/consts/const-eval/strlen.rs
@@ -1,9 +1,11 @@
 // run-pass
 
-#![feature(const_str_len, const_str_as_bytes)]
-
 const S: &str = "foo";
 pub const B: &[u8] = S.as_bytes();
+pub const C: usize = B.len();
+pub const D: bool = B.is_empty();
+pub const E: bool = S.is_empty();
+pub const F: usize = S.len();
 
 pub fn foo() -> [u8; S.len()] {
     let mut buf = [0; S.len()];
@@ -20,4 +22,10 @@ fn main() {
     assert_eq!(LEN, S.len());
     assert_eq!(B, foo());
     assert_eq!(B, b"foo");
+    assert_eq!(C, 3);
+    assert_eq!(F, 3);
+    assert!(!D);
+    assert!(!E);
+    const EMPTY: bool = "".is_empty();
+    assert!(EMPTY);
 }
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.rs b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.rs
index 4281874a031..0b1ab1c34ff 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.rs
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.rs
@@ -12,5 +12,5 @@ fn main() {}
 const unsafe fn no_union() {
     union Foo { x: (), y: () }
     Foo { x: () }.y
-    //~^ unions in const fn
+    //~^ accessing union fields is unstable
 }
diff --git a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.stderr b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.stderr
index 9de0e732f33..2a4c627438d 100644
--- a/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.stderr
+++ b/src/test/ui/consts/min_const_fn/min_const_fn_unsafe_bad.stderr
@@ -25,14 +25,14 @@ LL | const unsafe fn bad_const_unsafe_deref_raw_ref(x: *mut usize) -> &'static u
    = note: for more information, see https://github.com/rust-lang/rust/issues/51911
    = help: add `#![feature(const_raw_ptr_deref)]` to the crate attributes to enable
 
-error[E0658]: unions in const fn are unstable
+error[E0723]: accessing union fields is unstable
   --> $DIR/min_const_fn_unsafe_bad.rs:14:5
    |
 LL |     Foo { x: () }.y
    |     ^^^^^^^^^^^^^^^
    |
-   = note: for more information, see https://github.com/rust-lang/rust/issues/51909
-   = help: add `#![feature(const_fn_union)]` to the crate attributes to enable
+   = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
+   = help: add `#![feature(const_fn)]` to the crate attributes to enable
 
 error[E0133]: dereference of raw pointer is unsafe and requires unsafe function or block
   --> $DIR/min_const_fn_unsafe_bad.rs:1:77
@@ -44,5 +44,5 @@ LL | const fn bad_const_fn_deref_raw(x: *mut usize) -> &'static usize { unsafe {
 
 error: aborting due to 5 previous errors
 
-Some errors have detailed explanations: E0133, E0658.
+Some errors have detailed explanations: E0133, E0658, E0723.
 For more information about an error, try `rustc --explain E0133`.