diff options
| author | Simon Martin <simartin@users.sourceforge.net> | 2018-05-20 06:43:11 +0200 |
|---|---|---|
| committer | Simon Martin <simartin@users.sourceforge.net> | 2018-05-20 13:08:25 +0200 |
| commit | e6bf3e2ddbfc7907cdf5f3eef0eee4b610200e4b (patch) | |
| tree | e17bbc7d16c16280d6564aee4e1767f36f650563 /src/libsyntax/parse | |
| parent | c95e1cccc9c248789230a54ecfd87971a04d5c0c (diff) | |
| download | rust-e6bf3e2ddbfc7907cdf5f3eef0eee4b610200e4b.tar.gz rust-e6bf3e2ddbfc7907cdf5f3eef0eee4b610200e4b.zip | |
Issue #50636: Improve error diagnostic with missing commas after struct fields.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 7b91c491700..013241bd6d6 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -5797,9 +5797,18 @@ impl<'a> Parser<'a> { return Err(err); } } - _ => return Err(self.span_fatal_help(self.span, - &format!("expected `,`, or `}}`, found `{}`", self.this_token_to_string()), - "struct fields should be separated by commas")), + _ => { + let sp = self.sess.codemap().next_point(self.prev_span); + let mut err = self.struct_span_err(sp, &format!("expected `,`, or `}}`, found `{}`", + self.this_token_to_string())); + if self.token.is_ident() { + // This is likely another field; emit the diagnostic and keep going + err.span_suggestion(sp, "try adding a comma", ",".into()); + err.emit(); + } else { + return Err(err) + } + } } Ok(a_var) } |
