diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-03-22 19:31:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-22 19:31:34 +0100 |
| commit | 9d33d6fa4bb506abf53087dfd2be894cd3e5b915 (patch) | |
| tree | 45c3acb1aa22be304363a037496b3f68e53de8e2 /src/libsyntax/parse/parser.rs | |
| parent | 11429b2d1373c4a0c26ce681983cfa9aa925daaf (diff) | |
| parent | a8120d660a47559b7ae8eb798bb8f6e62d575000 (diff) | |
| download | rust-9d33d6fa4bb506abf53087dfd2be894cd3e5b915.tar.gz rust-9d33d6fa4bb506abf53087dfd2be894cd3e5b915.zip | |
Rollup merge of #59322 - estebank:diag-tweak, r=davidtwco
Tweak incorrect escaped char diagnostic
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 648ee771ddb..5627ac3fcf2 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -4229,19 +4229,24 @@ impl<'a> Parser<'a> { fn parse_pat_list(&mut self) -> PResult<'a, (Vec<P<Pat>>, Option<usize>, bool)> { let mut fields = Vec::new(); let mut ddpos = None; + let mut prev_dd_sp = None; let mut trailing_comma = false; loop { if self.eat(&token::DotDot) { if ddpos.is_none() { ddpos = Some(fields.len()); + prev_dd_sp = Some(self.prev_span); } else { // Emit a friendly error, ignore `..` and continue parsing - self.struct_span_err( + let mut err = self.struct_span_err( self.prev_span, "`..` can only be used once per tuple or tuple struct pattern", - ) - .span_label(self.prev_span, "can only be used once per pattern") - .emit(); + ); + err.span_label(self.prev_span, "can only be used once per pattern"); + if let Some(sp) = prev_dd_sp { + err.span_label(sp, "previously present here"); + } + err.emit(); } } else if !self.check(&token::CloseDelim(token::Paren)) { fields.push(self.parse_pat(None)?); |
