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.
This commit is contained in:
Ralf Jung 2021-05-05 17:52:29 +02:00 committed by GitHub
commit 2cbcfae654
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 54 additions and 1 deletions

View file

@ -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 () {}

View file

@ -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`.