Rollup merge of #63202 - exphp-forks:parser-ice-63135, r=estebank

Fix ICE in #63135

Closes #63135.

r?@estebank
This commit is contained in:
Mazdak Farrokhzad 2019-08-02 12:14:21 +02:00 committed by GitHub
commit 3396550420
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 56 additions and 1 deletions

View file

@ -3592,7 +3592,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

View file

@ -0,0 +1,3 @@
// error-pattern: aborting due to 6 previous errors
fn i(n{...,f #

View 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