diff options
| author | Alex Macleod <alex@macleod.io> | 2020-11-16 15:37:56 +0000 |
|---|---|---|
| committer | Alex Macleod <alex@macleod.io> | 2020-11-16 23:13:45 +0000 |
| commit | 2a5a379b46440b4d1998a7a08dca19bfcae51968 (patch) | |
| tree | 71ee45bb40887ef387884e63dbabdf6e18c1550c | |
| parent | f5230fbf76bafd86ee4376a0e26e551df8d17fec (diff) | |
| download | rust-2a5a379b46440b4d1998a7a08dca19bfcae51968.tar.gz rust-2a5a379b46440b4d1998a7a08dca19bfcae51968.zip | |
Add two regression tests
For #78721 and #78722
| -rw-r--r-- | src/test/ui/impl-trait/issues/issue-78721.rs | 15 | ||||
| -rw-r--r-- | src/test/ui/impl-trait/issues/issue-78721.stderr | 27 | ||||
| -rw-r--r-- | src/test/ui/impl-trait/issues/issue-78722.rs | 21 | ||||
| -rw-r--r-- | src/test/ui/impl-trait/issues/issue-78722.stderr | 27 |
4 files changed, 90 insertions, 0 deletions
diff --git a/src/test/ui/impl-trait/issues/issue-78721.rs b/src/test/ui/impl-trait/issues/issue-78721.rs new file mode 100644 index 00000000000..f7dbef9e3ff --- /dev/null +++ b/src/test/ui/impl-trait/issues/issue-78721.rs @@ -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() {} diff --git a/src/test/ui/impl-trait/issues/issue-78721.stderr b/src/test/ui/impl-trait/issues/issue-78721.stderr new file mode 100644 index 00000000000..353e882b1af --- /dev/null +++ b/src/test/ui/impl-trait/issues/issue-78721.stderr @@ -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`. diff --git a/src/test/ui/impl-trait/issues/issue-78722.rs b/src/test/ui/impl-trait/issues/issue-78722.rs new file mode 100644 index 00000000000..58734d3a445 --- /dev/null +++ b/src/test/ui/impl-trait/issues/issue-78722.rs @@ -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() {} diff --git a/src/test/ui/impl-trait/issues/issue-78722.stderr b/src/test/ui/impl-trait/issues/issue-78722.stderr new file mode 100644 index 00000000000..0e1e92b9120 --- /dev/null +++ b/src/test/ui/impl-trait/issues/issue-78722.stderr @@ -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`. |
