From ecea94e6a4ee5cd3615c934cfad54750af4df0cc Mon Sep 17 00:00:00 2001 From: yukang Date: Thu, 17 Nov 2022 20:27:28 +0800 Subject: fix #104513, Use node_ty_opt to avoid ICE in visit_ty --- src/test/ui/typeck/issue-104513-ice.rs | 6 ++++++ src/test/ui/typeck/issue-104513-ice.stderr | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 src/test/ui/typeck/issue-104513-ice.rs create mode 100644 src/test/ui/typeck/issue-104513-ice.stderr (limited to 'src/test/ui') diff --git a/src/test/ui/typeck/issue-104513-ice.rs b/src/test/ui/typeck/issue-104513-ice.rs new file mode 100644 index 00000000000..bcac0fa1e70 --- /dev/null +++ b/src/test/ui/typeck/issue-104513-ice.rs @@ -0,0 +1,6 @@ +struct S; +fn f() { + let _: S = S; //~ ERROR cannot find trait `Oops` in this scope + //~^ ERROR `impl Trait` only allowed in function and inherent method return types +} +fn main() {} diff --git a/src/test/ui/typeck/issue-104513-ice.stderr b/src/test/ui/typeck/issue-104513-ice.stderr new file mode 100644 index 00000000000..2b3b1b9efdf --- /dev/null +++ b/src/test/ui/typeck/issue-104513-ice.stderr @@ -0,0 +1,18 @@ +error[E0405]: cannot find trait `Oops` in this scope + --> $DIR/issue-104513-ice.rs:3:19 + | +LL | fn f() { + | - help: you might be missing a type parameter: `` +LL | let _: S = S; + | ^^^^ not found in this scope + +error[E0562]: `impl Trait` only allowed in function and inherent method return types, not in variable binding + --> $DIR/issue-104513-ice.rs:3:14 + | +LL | let _: S = S; + | ^^^^^^^^^ + +error: aborting due to 2 previous errors + +Some errors have detailed explanations: E0405, E0562. +For more information about an error, try `rustc --explain E0405`. -- cgit 1.4.1-3-g733a5