diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2019-03-01 22:14:22 -0800 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2019-03-06 18:45:59 -0800 |
| commit | ed2de5a8421822ecf9aa3df30bc6c2e55d4ea97d (patch) | |
| tree | 411caf5fa7225b5c5e7bdab5834904161970b2f6 /src | |
| parent | cc535a2a19444d7b96e80dc8f445d50452e5495d (diff) | |
| download | rust-ed2de5a8421822ecf9aa3df30bc6c2e55d4ea97d.tar.gz rust-ed2de5a8421822ecf9aa3df30bc6c2e55d4ea97d.zip | |
Emit unclosed delimiters during recovery
Diffstat (limited to 'src')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 1 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-58856-1.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-58856-1.stderr | 10 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index c27a1f79d8c..0187ad743aa 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -778,6 +778,7 @@ impl<'a> Parser<'a> { // leave it in the input Ok(false) } else if self.last_unexpected_token_span == Some(self.span) { + emit_unclosed_delims(&self.unclosed_delims, self.diagnostic()); FatalError.raise(); } else { let mut expected = edible.iter() diff --git a/src/test/ui/issues/issue-58856-1.rs b/src/test/ui/issues/issue-58856-1.rs index f5edac0d2e3..7dc3658776e 100644 --- a/src/test/ui/issues/issue-58856-1.rs +++ b/src/test/ui/issues/issue-58856-1.rs @@ -5,4 +5,8 @@ impl A { //~^ ERROR expected one of `)`, `,`, or `:`, found `>` } +// verify that mismatched delimiters get emitted +fn foo(] {} +//~^ ERROR incorrect close delimiter + fn main() {} diff --git a/src/test/ui/issues/issue-58856-1.stderr b/src/test/ui/issues/issue-58856-1.stderr index 85101e467b1..f26ebbe15c5 100644 --- a/src/test/ui/issues/issue-58856-1.stderr +++ b/src/test/ui/issues/issue-58856-1.stderr @@ -7,5 +7,13 @@ LL | fn b(self> {} | | help: `)` may belong here | unclosed delimiter -error: aborting due to previous error +error: incorrect close delimiter: `]` + --> $DIR/issue-58856-1.rs:9:8 + | +LL | fn foo(] {} + | -^ incorrect close delimiter + | | + | un-closed delimiter + +error: aborting due to 2 previous errors |
