diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-03-22 18:23:19 +0100 |
|---|---|---|
| committer | Matthias Krüger <matthias.krueger@famsik.de> | 2024-03-24 09:23:13 +0100 |
| commit | 74ca9813ed18e1bdb3d4d1c8ab8d311873414eb1 (patch) | |
| tree | a0fc76634aa17541694ad6e3db54cb29a095c796 /tests/ui/unsized-locals | |
| parent | 445507a19dec84532420bbe9091ead5d6e9ae448 (diff) | |
| download | rust-74ca9813ed18e1bdb3d4d1c8ab8d311873414eb1.tar.gz rust-74ca9813ed18e1bdb3d4d1c8ab8d311873414eb1.zip | |
add test for #88212 ICE when lambda captures unsized local
Fixes #88212
Diffstat (limited to 'tests/ui/unsized-locals')
| -rw-r--r-- | tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.rs | 21 | ||||
| -rw-r--r-- | tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.stderr | 23 |
2 files changed, 44 insertions, 0 deletions
diff --git a/tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.rs b/tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.rs new file mode 100644 index 00000000000..1c43e3a4489 --- /dev/null +++ b/tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.rs @@ -0,0 +1,21 @@ +// ICE size_and_align_of::<[closure@test.rs:15:5: 17:7]> not supported #88212 + +#![feature(unsized_locals)] +//~^ WARN the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes + +trait Example {} +struct Foo(); + +impl Example for Foo {} + +fn example() -> Box<dyn Example> { + Box::new(Foo()) +} + +fn main() { + let x: dyn Example = *example(); + (move || { + let _y = x; + //~^ ERROR the size for values of type `dyn Example` cannot be known at compilation time + })(); +} diff --git a/tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.stderr b/tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.stderr new file mode 100644 index 00000000000..a0253ac1f35 --- /dev/null +++ b/tests/ui/unsized-locals/ice-size_and_align_of-closure-not-supported-88212.stderr @@ -0,0 +1,23 @@ +warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes + --> $DIR/ice-size_and_align_of-closure-not-supported-88212.rs:3:12 + | +LL | #![feature(unsized_locals)] + | ^^^^^^^^^^^^^^ + | + = note: see issue #48055 <https://github.com/rust-lang/rust/issues/48055> for more information + = note: `#[warn(incomplete_features)]` on by default + +error[E0277]: the size for values of type `dyn Example` cannot be known at compilation time + --> $DIR/ice-size_and_align_of-closure-not-supported-88212.rs:18:18 + | +LL | (move || { + | -- this closure captures all values by move +LL | let _y = x; + | ^ doesn't have a size known at compile-time + | + = help: the trait `Sized` is not implemented for `dyn Example` + = note: all values captured by value by a closure must have a statically known size + +error: aborting due to 1 previous error; 1 warning emitted + +For more information about this error, try `rustc --explain E0277`. |
