1
Fork 0

Rollup merge of #79102 - Alexendoo:ice-regression-tests, r=Mark-Simulacrum

Add two regression tests

For #78721 and #78722
This commit is contained in:
Dylan DPC 2020-11-19 16:26:29 +01:00 committed by GitHub
commit 6010f7b7e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 90 additions and 0 deletions

View file

@ -0,0 +1,15 @@
// edition:2018
#![feature(impl_trait_in_bindings)]
//~^ WARN the feature `impl_trait_in_bindings` is incomplete
struct Bug {
V1: [(); {
let f: impl core::future::Future<Output = u8> = async { 1 };
//~^ ERROR `async` blocks are not allowed in constants
//~| ERROR destructors cannot be evaluated at compile-time
1
}],
}
fn main() {}

View file

@ -0,0 +1,27 @@
warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-78721.rs:3:12
|
LL | #![feature(impl_trait_in_bindings)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
error: `async` blocks are not allowed in constants
--> $DIR/issue-78721.rs:8:57
|
LL | let f: impl core::future::Future<Output = u8> = async { 1 };
| ^^^^^^^^^^^
error[E0493]: destructors cannot be evaluated at compile-time
--> $DIR/issue-78721.rs:8:13
|
LL | let f: impl core::future::Future<Output = u8> = async { 1 };
| ^ constants cannot evaluate destructors
...
LL | }],
| - value is dropped here
error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0493`.

View file

@ -0,0 +1,21 @@
// edition:2018
#![feature(type_alias_impl_trait)]
#![feature(impl_trait_in_bindings)]
//~^ WARN the feature `impl_trait_in_bindings` is incomplete
type F = impl core::future::Future<Output = u8>;
struct Bug {
V1: [(); {
fn concrete_use() -> F {
async {}
}
let f: F = async { 1 };
//~^ ERROR `async` blocks are not allowed in constants
//~| ERROR destructors cannot be evaluated at compile-time
1
}],
}
fn main() {}

View file

@ -0,0 +1,27 @@
warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
--> $DIR/issue-78722.rs:4:12
|
LL | #![feature(impl_trait_in_bindings)]
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(incomplete_features)]` on by default
= note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
error: `async` blocks are not allowed in constants
--> $DIR/issue-78722.rs:14:20
|
LL | let f: F = async { 1 };
| ^^^^^^^^^^^
error[E0493]: destructors cannot be evaluated at compile-time
--> $DIR/issue-78722.rs:14:13
|
LL | let f: F = async { 1 };
| ^ constants cannot evaluate destructors
...
LL | }],
| - value is dropped here
error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0493`.