about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-03-01 22:14:22 -0800
committerEsteban Küber <esteban@kuber.com.ar>2019-03-06 18:45:59 -0800
commited2de5a8421822ecf9aa3df30bc6c2e55d4ea97d (patch)
tree411caf5fa7225b5c5e7bdab5834904161970b2f6 /src
parentcc535a2a19444d7b96e80dc8f445d50452e5495d (diff)
downloadrust-ed2de5a8421822ecf9aa3df30bc6c2e55d4ea97d.tar.gz
rust-ed2de5a8421822ecf9aa3df30bc6c2e55d4ea97d.zip
Emit unclosed delimiters during recovery
Diffstat (limited to 'src')
-rw-r--r--src/libsyntax/parse/parser.rs1
-rw-r--r--src/test/ui/issues/issue-58856-1.rs4
-rw-r--r--src/test/ui/issues/issue-58856-1.stderr10
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