fix ice in suggesting

This commit is contained in:
yukang 2023-05-08 11:16:17 +08:00
parent 20e6e6a493
commit a7fc32ceaf
3 changed files with 29 additions and 7 deletions

View File

@ -405,13 +405,20 @@ impl<'a> Parser<'a> {
let prev_span = self.prev_token.span.shrink_to_lo();
let snapshot = self.create_snapshot_for_diagnostic();
self.bump();
if self.parse_ty().is_ok() && self.token == token::Eq {
err.span_suggestion_verbose(
prev_span,
"you might have meant to introduce a new binding",
"let ".to_string(),
Applicability::MaybeIncorrect,
);
match self.parse_ty() {
Ok(_) => {
if self.token == token::Eq {
err.span_suggestion_verbose(
prev_span,
"you might have meant to introduce a new binding",
"let ".to_string(),
Applicability::MaybeIncorrect,
);
}
}
Err(err) => {
err.cancel();
}
}
self.restore_snapshot(snapshot);
}

View File

@ -0,0 +1,5 @@
struct A {
: :u8, //~ ERROR expected identifier, found `:`
}
fn main() {}

View File

@ -0,0 +1,10 @@
error: expected identifier, found `:`
--> $DIR/missing-let-in-binding-3.rs:2:5
|
LL | struct A {
| - while parsing this struct
LL | : :u8,
| ^ expected identifier
error: aborting due to previous error