add gate tests and pacify tidy

This commit is contained in:
Ralf Jung 2021-04-19 10:15:56 +02:00
parent bd9556956a
commit 04db4abbfc
8 changed files with 98 additions and 7 deletions

View file

@ -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

View file

@ -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]

View file

@ -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`.

View file

@ -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

View file

@ -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]

View file

@ -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`.