about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2021-05-05 17:52:29 +0200
committerGitHub <noreply@github.com>2021-05-05 17:52:29 +0200
commit2cbcfae6548e08fe079ae0b7db0d97ec30e006d8 (patch)
tree02063ef4cd6cb4e64d1b16f885ed993abe663fb9 /src/test
parent2c7bf41b97e1b2a4ad475dd8fb197ce7f0c5c805 (diff)
parent11379f0494b6a8c81b3fb9e0411651bc749aaa06 (diff)
downloadrust-2cbcfae6548e08fe079ae0b7db0d97ec30e006d8.tar.gz
rust-2cbcfae6548e08fe079ae0b7db0d97ec30e006d8.zip
Rollup merge of #84913 - estebank:issue-84831, r=varkor
Do not ICE on invalid const param

When encountering a path that can't have generics, do not call
`generics_of`. This would happen when writing something like
`path::this_is_a_mod<const_val>`.

Fix #84831.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/typeck/issue-84831.rs9
-rw-r--r--src/test/ui/typeck/issue-84831.stderr26
2 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/typeck/issue-84831.rs b/src/test/ui/typeck/issue-84831.rs
new file mode 100644
index 00000000000..c646f710725
--- /dev/null
+++ b/src/test/ui/typeck/issue-84831.rs
@@ -0,0 +1,9 @@
+fn f() {
+    std::<0>; //~ ERROR expected value
+}
+fn j() {
+    std::<_ as _>; //~ ERROR expected value
+    //~^ ERROR expected one of `,` or `>`, found keyword `as`
+}
+
+fn main () {}
diff --git a/src/test/ui/typeck/issue-84831.stderr b/src/test/ui/typeck/issue-84831.stderr
new file mode 100644
index 00000000000..e3cce10a00f
--- /dev/null
+++ b/src/test/ui/typeck/issue-84831.stderr
@@ -0,0 +1,26 @@
+error: expected one of `,` or `>`, found keyword `as`
+  --> $DIR/issue-84831.rs:5:13
+   |
+LL |     std::<_ as _>;
+   |             ^^ expected one of `,` or `>`
+   |
+help: expressions must be enclosed in braces to be used as const generic arguments
+   |
+LL |     std::<{ _ as _ }>;
+   |           ^        ^
+
+error[E0423]: expected value, found crate `std`
+  --> $DIR/issue-84831.rs:2:5
+   |
+LL |     std::<0>;
+   |     ^^^^^^^^ not a value
+
+error[E0423]: expected value, found crate `std`
+  --> $DIR/issue-84831.rs:5:5
+   |
+LL |     std::<_ as _>;
+   |     ^^^^^^^^^^^^^ not a value
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0423`.