diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/consts/const_fn_trait_bound.gated.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/consts/const_fn_trait_bound.rs | 17 | ||||
| -rw-r--r-- | src/test/ui/consts/const_fn_trait_bound.stock.stderr | 30 | ||||
| -rw-r--r-- | src/test/ui/consts/const_fn_unsize.gated.stderr | 8 | ||||
| -rw-r--r-- | src/test/ui/consts/const_fn_unsize.rs | 16 | ||||
| -rw-r--r-- | src/test/ui/consts/const_fn_unsize.stock.stderr | 12 |
6 files changed, 91 insertions, 0 deletions
diff --git a/src/test/ui/consts/const_fn_trait_bound.gated.stderr b/src/test/ui/consts/const_fn_trait_bound.gated.stderr new file mode 100644 index 00000000000..ded05cb17c5 --- /dev/null +++ b/src/test/ui/consts/const_fn_trait_bound.gated.stderr @@ -0,0 +1,8 @@ +error: fatal error triggered by #[rustc_error] + --> $DIR/const_fn_trait_bound.rs:17:1 + | +LL | fn main() {} + | ^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/consts/const_fn_trait_bound.rs b/src/test/ui/consts/const_fn_trait_bound.rs new file mode 100644 index 00000000000..b1ef820d827 --- /dev/null +++ b/src/test/ui/consts/const_fn_trait_bound.rs @@ -0,0 +1,17 @@ +// gate-test-const_fn_trait_bound + +// revisions: stock gated + +#![feature(rustc_attrs)] +#![cfg_attr(gated, feature(const_fn_trait_bound))] + +const fn test1<T: std::ops::Add>() {} +//[stock]~^ trait bounds +const fn test2(_x: &dyn Send) {} +//[stock]~^ trait bounds +const fn test3() -> &'static dyn Send { loop {} } +//[stock]~^ trait bounds + + +#[rustc_error] +fn main() {} //[gated]~ fatal error triggered by #[rustc_error] diff --git a/src/test/ui/consts/const_fn_trait_bound.stock.stderr b/src/test/ui/consts/const_fn_trait_bound.stock.stderr new file mode 100644 index 00000000000..2ad45f3afde --- /dev/null +++ b/src/test/ui/consts/const_fn_trait_bound.stock.stderr @@ -0,0 +1,30 @@ +error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable + --> $DIR/const_fn_trait_bound.rs:8:16 + | +LL | const fn test1<T: std::ops::Add>() {} + | ^ + | + = note: see issue #57563 <https://github.com/rust-lang/rust/issues/57563> for more information + = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable + +error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable + --> $DIR/const_fn_trait_bound.rs:10:16 + | +LL | const fn test2(_x: &dyn Send) {} + | ^^ + | + = note: see issue #57563 <https://github.com/rust-lang/rust/issues/57563> for more information + = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable + +error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable + --> $DIR/const_fn_trait_bound.rs:12:21 + | +LL | const fn test3() -> &'static dyn Send { loop {} } + | ^^^^^^^^^^^^^^^^^ + | + = note: see issue #57563 <https://github.com/rust-lang/rust/issues/57563> for more information + = help: add `#![feature(const_fn_trait_bound)]` to the crate attributes to enable + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/consts/const_fn_unsize.gated.stderr b/src/test/ui/consts/const_fn_unsize.gated.stderr new file mode 100644 index 00000000000..8a65c274ca9 --- /dev/null +++ b/src/test/ui/consts/const_fn_unsize.gated.stderr @@ -0,0 +1,8 @@ +error: fatal error triggered by #[rustc_error] + --> $DIR/const_fn_unsize.rs:16:1 + | +LL | fn main() {} + | ^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/consts/const_fn_unsize.rs b/src/test/ui/consts/const_fn_unsize.rs new file mode 100644 index 00000000000..0cab3b0a031 --- /dev/null +++ b/src/test/ui/consts/const_fn_unsize.rs @@ -0,0 +1,16 @@ +// gate-test-const_fn_unsize + +// revisions: stock gated + +#![feature(rustc_attrs)] +#![cfg_attr(gated, feature(const_fn_unsize))] + +use std::ptr::NonNull; + +const fn test() { + let _x = NonNull::<[i32; 0]>::dangling() as NonNull<[i32]>; + //[stock]~^ unsizing cast +} + +#[rustc_error] +fn main() {} //[gated]~ fatal error triggered by #[rustc_error] diff --git a/src/test/ui/consts/const_fn_unsize.stock.stderr b/src/test/ui/consts/const_fn_unsize.stock.stderr new file mode 100644 index 00000000000..cc746d4f175 --- /dev/null +++ b/src/test/ui/consts/const_fn_unsize.stock.stderr @@ -0,0 +1,12 @@ +error[E0658]: unsizing casts to types besides slices are not allowed in const fn + --> $DIR/const_fn_unsize.rs:11:14 + | +LL | let _x = NonNull::<[i32; 0]>::dangling() as NonNull<[i32]>; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #64992 <https://github.com/rust-lang/rust/issues/64992> for more information + = help: add `#![feature(const_fn_unsize)]` to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. |
