let
is not allowed in struct field definitions
Co-authored-by: jyn514 <jyn514@gmail.com> Co-authored-by: Esteban Kuber <estebank@users.noreply.github.com>
This commit is contained in:
parent
ab37a83ae2
commit
6071b4b8a6
2 changed files with 25 additions and 3 deletions
|
@ -1788,7 +1788,23 @@ impl<'a> Parser<'a> {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
self.expected_ident_found()
|
||||
let mut err = self.expected_ident_found();
|
||||
if let Some((ident, _)) = self.token.ident() && ident.as_str() == "let" {
|
||||
self.bump(); // `let`
|
||||
let span = self.prev_token.span.until(self.token.span);
|
||||
err.span_suggestion(
|
||||
span,
|
||||
"remove the let, the `let` keyword is not allowed in struct field definitions",
|
||||
String::new(),
|
||||
Applicability::MachineApplicable,
|
||||
);
|
||||
err.note("the `let` keyword is not allowed in `struct` fields");
|
||||
err.note("see <https://doc.rust-lang.org/book/ch05-01-defining-structs.html> for more information");
|
||||
err.emit();
|
||||
self.bump();
|
||||
return Ok(ident);
|
||||
}
|
||||
err
|
||||
};
|
||||
return Err(err);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue