diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-02-15 09:45:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-15 09:45:49 +0100 |
| commit | e9db0613acb2dfdb6a892873d59d0626b20c6cc8 (patch) | |
| tree | 72b0aff59d492542867e747604c2abee64856211 /src/librustc_parse/parser | |
| parent | 09d6a657b1396d8ed9ce052df4a45d4ef47fa608 (diff) | |
| parent | 98757f14d0242e6dcae258df8aeb7e17580702ef (diff) | |
| download | rust-e9db0613acb2dfdb6a892873d59d0626b20c6cc8.tar.gz rust-e9db0613acb2dfdb6a892873d59d0626b20c6cc8.zip | |
Rollup merge of #69180 - Aaron1011:feature/comma-struct-init, r=petrochenkov
Suggest a comma if a struct initializer field fails to parse Currently, we emit a "try adding a comma" suggestion if a comma is missing in a struct definition. However, we emit no such suggestion if a comma is missing in a struct initializer. This commit adds a "try adding a comma" suggestion when we don't find a comma during the parsing of a struct initializer field. The change to `src/test/ui/parser/removed-syntax-with-1.stderr` isn't great, but I don't see a good way of avoiding it.
Diffstat (limited to 'src/librustc_parse/parser')
| -rw-r--r-- | src/librustc_parse/parser/expr.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/librustc_parse/parser/expr.rs b/src/librustc_parse/parser/expr.rs index 5a4225ece65..20b9df0a2d9 100644 --- a/src/librustc_parse/parser/expr.rs +++ b/src/librustc_parse/parser/expr.rs @@ -1832,10 +1832,16 @@ impl<'a> Parser<'a> { } } Err(mut e) => { + e.span_label(struct_sp, "while parsing this struct"); if let Some(f) = recovery_field { fields.push(f); + e.span_suggestion( + self.prev_span.shrink_to_hi(), + "try adding a comma", + ",".into(), + Applicability::MachineApplicable, + ); } - e.span_label(struct_sp, "while parsing this struct"); e.emit(); self.recover_stmt_(SemiColonMode::Comma, BlockMode::Ignore); self.eat(&token::Comma); |
