Fix ICE in #63135
This commit is contained in:
parent
f690098e6d
commit
b3321fb26e
@ -3620,7 +3620,15 @@ impl<'a> Parser<'a> {
|
||||
let mut etc_span = None;
|
||||
|
||||
while self.token != token::CloseDelim(token::Brace) {
|
||||
let attrs = self.parse_outer_attributes()?;
|
||||
let attrs = match self.parse_outer_attributes() {
|
||||
Ok(attrs) => attrs,
|
||||
Err(err) => {
|
||||
if let Some(mut delayed) = delayed_err {
|
||||
delayed.emit();
|
||||
}
|
||||
return Err(err);
|
||||
},
|
||||
};
|
||||
let lo = self.token.span;
|
||||
|
||||
// check that a comma comes after every field
|
||||
|
3
src/test/ui/parser/issue-63135.rs
Normal file
3
src/test/ui/parser/issue-63135.rs
Normal file
@ -0,0 +1,3 @@
|
||||
// error-pattern: aborting due to 6 previous errors
|
||||
|
||||
fn i(n{...,f #
|
44
src/test/ui/parser/issue-63135.stderr
Normal file
44
src/test/ui/parser/issue-63135.stderr
Normal file
@ -0,0 +1,44 @@
|
||||
error: this file contains an un-closed delimiter
|
||||
--> $DIR/issue-63135.rs:3:16
|
||||
|
|
||||
LL | fn i(n{...,f #
|
||||
| - - ^
|
||||
| | |
|
||||
| | un-closed delimiter
|
||||
| un-closed delimiter
|
||||
|
||||
error: expected field pattern, found `...`
|
||||
--> $DIR/issue-63135.rs:3:8
|
||||
|
|
||||
LL | fn i(n{...,f #
|
||||
| ^^^ help: to omit remaining fields, use one fewer `.`: `..`
|
||||
|
||||
error: expected `}`, found `,`
|
||||
--> $DIR/issue-63135.rs:3:11
|
||||
|
|
||||
LL | fn i(n{...,f #
|
||||
| ---^
|
||||
| | |
|
||||
| | expected `}`
|
||||
| `..` must be at the end and cannot have a trailing comma
|
||||
|
||||
error: expected `[`, found `}`
|
||||
--> $DIR/issue-63135.rs:3:15
|
||||
|
|
||||
LL | fn i(n{...,f #
|
||||
| ^ expected `[`
|
||||
|
||||
error: expected `:`, found `)`
|
||||
--> $DIR/issue-63135.rs:3:15
|
||||
|
|
||||
LL | fn i(n{...,f #
|
||||
| ^ expected `:`
|
||||
|
||||
error: expected one of `->`, `where`, or `{`, found `<eof>`
|
||||
--> $DIR/issue-63135.rs:3:15
|
||||
|
|
||||
LL | fn i(n{...,f #
|
||||
| ^ expected one of `->`, `where`, or `{` here
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
Loading…
x
Reference in New Issue
Block a user