From 7228e9b098a27f48a87bec067b01e2000fdccb2d Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Tue, 12 Apr 2022 12:14:32 -0700 Subject: [PATCH] regression test for spurrious "help: store this in the heap" Closes #82446 --- src/test/ui/box/issue-82446.rs | 15 +++++++++++++++ src/test/ui/box/issue-82446.stderr | 12 ++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/test/ui/box/issue-82446.rs create mode 100644 src/test/ui/box/issue-82446.stderr diff --git a/src/test/ui/box/issue-82446.rs b/src/test/ui/box/issue-82446.rs new file mode 100644 index 0000000000000..2960f7fbc2121 --- /dev/null +++ b/src/test/ui/box/issue-82446.rs @@ -0,0 +1,15 @@ +// https://github.com/rust-lang/rust/issues/82446 +// Spurious 'help: store this in the heap' regression test +trait MyTrait {} + +struct Foo { + val: Box +} + +fn make_it(val: &Box) { + Foo { + val //~ ERROR [E0308] + }; +} + +fn main() {} diff --git a/src/test/ui/box/issue-82446.stderr b/src/test/ui/box/issue-82446.stderr new file mode 100644 index 0000000000000..0374737957e48 --- /dev/null +++ b/src/test/ui/box/issue-82446.stderr @@ -0,0 +1,12 @@ +error[E0308]: mismatched types + --> $DIR/issue-82446.rs:11:9 + | +LL | val + | ^^^ expected struct `Box`, found reference + | + = note: expected struct `Box<(dyn MyTrait + 'static)>` + found reference `&Box<(dyn MyTrait + 'static)>` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`.