about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-11-24 21:34:51 +0100
committerGitHub <noreply@github.com>2022-11-24 21:34:51 +0100
commit80dc91c6c327c3e515b8b0c181eef0327e911926 (patch)
tree27e9d859451494aa13cdf7f285ffeb627dfcc83e /src/test
parent5dfb4b0afaf6acace0845d00e85a934fb4289d83 (diff)
parentecea94e6a4ee5cd3615c934cfad54750af4df0cc (diff)
downloadrust-80dc91c6c327c3e515b8b0c181eef0327e911926.tar.gz
rust-80dc91c6c327c3e515b8b0c181eef0327e911926.zip
Rollup merge of #104514 - chenyukang:yukang/fix-104513-ice, r=petrochenkov
Use node_ty_opt to avoid ICE in visit_ty

Fixes #104513
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/typeck/issue-104513-ice.rs6
-rw-r--r--src/test/ui/typeck/issue-104513-ice.stderr18
2 files changed, 24 insertions, 0 deletions
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<impl Oops> = 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: `<Oops>`
+LL |     let _: S<impl Oops> = 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<impl Oops> = 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`.