diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2019-01-11 21:33:57 -0800 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2019-01-11 21:33:57 -0800 |
| commit | 8119017746959f7ecb3ba93c6c32a7d6d9dafc40 (patch) | |
| tree | 5cffe809873c2d9b25f5e6e5c7db00c07063bd6e /src/libsyntax/parse/parser.rs | |
| parent | 975f8b5e32cfcd368a245169dd3d3cc536b0cc28 (diff) | |
| download | rust-8119017746959f7ecb3ba93c6c32a7d6d9dafc40.tar.gz rust-8119017746959f7ecb3ba93c6c32a7d6d9dafc40.zip | |
Continue evaluating after finding incorrect .. in pattern
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index ce9db4d0468..6228598ab61 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -3814,8 +3814,12 @@ impl<'a> Parser<'a> { ddpos = Some(fields.len()); } else { // Emit a friendly error, ignore `..` and continue parsing - self.span_err(self.prev_span, - "`..` can only be used once per tuple or tuple struct pattern"); + 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(); } } else if !self.check(&token::CloseDelim(token::Paren)) { fields.push(self.parse_pat(None)?); @@ -3831,7 +3835,10 @@ impl<'a> Parser<'a> { if ddpos == Some(fields.len()) && trailing_comma { // `..` needs to be followed by `)` or `, pat`, `..,)` is disallowed. - self.span_err(self.prev_span, "trailing comma is not permitted after `..`"); + let msg = "trailing comma is not permitted after `..`"; + self.struct_span_err(self.prev_span, msg) + .span_label(self.prev_span, msg) + .emit(); } Ok((fields, ddpos, trailing_comma)) |
