about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2018-08-14 18:04:20 -0700
committerEsteban Küber <esteban@kuber.com.ar>2018-08-15 13:18:34 -0700
commit2a74d7924a138b720e054fa6ea9610b5ba56d061 (patch)
tree0948e0d65a625bfa020912e6976e856635591691
parent67390c0c312ca2d8649ee7aa1e4bfa823f273857 (diff)
downloadrust-2a74d7924a138b720e054fa6ea9610b5ba56d061.tar.gz
rust-2a74d7924a138b720e054fa6ea9610b5ba56d061.zip
Tweak unclosed delimiter parser error
-rw-r--r--src/libsyntax/parse/lexer/tokentrees.rs6
-rw-r--r--src/test/ui/issue-10636-1.rs (renamed from src/test/parse-fail/issue-10636-1.rs)6
-rw-r--r--src/test/ui/issue-10636-1.stderr11
-rw-r--r--src/test/ui/parser-recovery-2.stderr11
-rw-r--r--src/test/ui/resolve/token-error-correct-2.stderr11
-rw-r--r--src/test/ui/resolve/token-error-correct-3.stderr11
-rw-r--r--src/test/ui/resolve/token-error-correct.stderr22
-rw-r--r--src/test/ui/token/issue-10636-2.stderr11
8 files changed, 44 insertions, 45 deletions
diff --git a/src/libsyntax/parse/lexer/tokentrees.rs b/src/libsyntax/parse/lexer/tokentrees.rs
index 36c220fa0d9..c578108a3fc 100644
--- a/src/libsyntax/parse/lexer/tokentrees.rs
+++ b/src/libsyntax/parse/lexer/tokentrees.rs
@@ -79,11 +79,12 @@ impl<'a> StringReader<'a> {
                         let token_str = token_to_string(&self.token);
                         let msg = format!("incorrect close delimiter: `{}`", token_str);
                         let mut err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
+                        err.span_label(self.span, "incorrect close delimiter");
                         // This is a conservative error: only report the last unclosed delimiter.
                         // The previous unclosed delimiters could actually be closed! The parser
                         // just hasn't gotten to them yet.
                         if let Some(&(_, sp)) = self.open_braces.last() {
-                            err.span_note(sp, "unclosed delimiter");
+                            err.span_label(sp, "unclosed delimiter");
                         };
                         err.emit();
 
@@ -118,7 +119,8 @@ impl<'a> StringReader<'a> {
                 // matching opening delimiter).
                 let token_str = token_to_string(&self.token);
                 let msg = format!("unexpected close delimiter: `{}`", token_str);
-                let err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
+                let mut err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
+                err.span_label(self.span, "unexpected close delimiter");
                 Err(err)
             },
             _ => {
diff --git a/src/test/parse-fail/issue-10636-1.rs b/src/test/ui/issue-10636-1.rs
index 398fe8c5b8c..fdd50773593 100644
--- a/src/test/parse-fail/issue-10636-1.rs
+++ b/src/test/ui/issue-10636-1.rs
@@ -12,4 +12,8 @@
 
 struct Obj { //~ NOTE: unclosed delimiter
     member: usize
-) //~ ERROR: incorrect close delimiter
+)
+//~^ ERROR incorrect close delimiter
+//~| NOTE incorrect close delimiter
+
+fn main() {}
diff --git a/src/test/ui/issue-10636-1.stderr b/src/test/ui/issue-10636-1.stderr
new file mode 100644
index 00000000000..af80e259fbd
--- /dev/null
+++ b/src/test/ui/issue-10636-1.stderr
@@ -0,0 +1,11 @@
+error: incorrect close delimiter: `)`
+  --> $DIR/issue-10636-1.rs:15:1
+   |
+LL | struct Obj { //~ NOTE: unclosed delimiter
+   |            - unclosed delimiter
+LL |     member: usize
+LL | )
+   | ^ incorrect close delimiter
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/parser-recovery-2.stderr b/src/test/ui/parser-recovery-2.stderr
index 7b520607352..1025dad3af7 100644
--- a/src/test/ui/parser-recovery-2.stderr
+++ b/src/test/ui/parser-recovery-2.stderr
@@ -1,14 +1,11 @@
 error: incorrect close delimiter: `)`
   --> $DIR/parser-recovery-2.rs:18:5
    |
-LL |     ) //~ ERROR incorrect close delimiter: `)`
-   |     ^
-   |
-note: unclosed delimiter
-  --> $DIR/parser-recovery-2.rs:16:14
-   |
 LL |     fn bar() {
-   |              ^
+   |              - unclosed delimiter
+LL |         let x = foo(); //~ ERROR cannot find function `foo` in this scope
+LL |     ) //~ ERROR incorrect close delimiter: `)`
+   |     ^ incorrect close delimiter
 
 error: unexpected token: `;`
   --> $DIR/parser-recovery-2.rs:22:15
diff --git a/src/test/ui/resolve/token-error-correct-2.stderr b/src/test/ui/resolve/token-error-correct-2.stderr
index 7abc1ba4781..fcd4b4888b0 100644
--- a/src/test/ui/resolve/token-error-correct-2.stderr
+++ b/src/test/ui/resolve/token-error-correct-2.stderr
@@ -1,14 +1,11 @@
 error: incorrect close delimiter: `)`
   --> $DIR/token-error-correct-2.rs:16:5
    |
-LL |     ) //~ ERROR: incorrect close delimiter: `)`
-   |     ^
-   |
-note: unclosed delimiter
-  --> $DIR/token-error-correct-2.rs:14:12
-   |
 LL |     if foo {
-   |            ^
+   |            - unclosed delimiter
+LL |     //~^ ERROR: cannot find value `foo`
+LL |     ) //~ ERROR: incorrect close delimiter: `)`
+   |     ^ incorrect close delimiter
 
 error[E0425]: cannot find value `foo` in this scope
   --> $DIR/token-error-correct-2.rs:14:8
diff --git a/src/test/ui/resolve/token-error-correct-3.stderr b/src/test/ui/resolve/token-error-correct-3.stderr
index 24186d94acc..a546c2704d9 100644
--- a/src/test/ui/resolve/token-error-correct-3.stderr
+++ b/src/test/ui/resolve/token-error-correct-3.stderr
@@ -1,14 +1,11 @@
 error: incorrect close delimiter: `}`
   --> $DIR/token-error-correct-3.rs:30:9
    |
-LL |         } else { //~ ERROR: incorrect close delimiter: `}`
-   |         ^
-   |
-note: unclosed delimiter
-  --> $DIR/token-error-correct-3.rs:24:21
-   |
 LL |             callback(path.as_ref(); //~ ERROR expected one of
-   |                     ^
+   |                     - unclosed delimiter
+...
+LL |         } else { //~ ERROR: incorrect close delimiter: `}`
+   |         ^ incorrect close delimiter
 
 error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;`
   --> $DIR/token-error-correct-3.rs:24:35
diff --git a/src/test/ui/resolve/token-error-correct.stderr b/src/test/ui/resolve/token-error-correct.stderr
index c6d32c6726e..bae57dd77c8 100644
--- a/src/test/ui/resolve/token-error-correct.stderr
+++ b/src/test/ui/resolve/token-error-correct.stderr
@@ -1,26 +1,20 @@
 error: incorrect close delimiter: `}`
   --> $DIR/token-error-correct.rs:16:1
    |
-LL | }
-   | ^
-   |
-note: unclosed delimiter
-  --> $DIR/token-error-correct.rs:14:12
-   |
 LL |     foo(bar(;
-   |            ^
+   |            - unclosed delimiter
+LL |     //~^ ERROR: expected expression, found `;`
+LL | }
+   | ^ incorrect close delimiter
 
 error: incorrect close delimiter: `}`
   --> $DIR/token-error-correct.rs:16:1
    |
-LL | }
-   | ^
-   |
-note: unclosed delimiter
-  --> $DIR/token-error-correct.rs:14:8
-   |
 LL |     foo(bar(;
-   |        ^
+   |        - unclosed delimiter
+LL |     //~^ ERROR: expected expression, found `;`
+LL | }
+   | ^ incorrect close delimiter
 
 error: expected expression, found `;`
   --> $DIR/token-error-correct.rs:14:13
diff --git a/src/test/ui/token/issue-10636-2.stderr b/src/test/ui/token/issue-10636-2.stderr
index 6c0053f2f85..634191bb5ef 100644
--- a/src/test/ui/token/issue-10636-2.stderr
+++ b/src/test/ui/token/issue-10636-2.stderr
@@ -1,14 +1,11 @@
 error: incorrect close delimiter: `}`
   --> $DIR/issue-10636-2.rs:18:1
    |
-LL | } //~ ERROR: incorrect close delimiter
-   | ^
-   |
-note: unclosed delimiter
-  --> $DIR/issue-10636-2.rs:15:15
-   |
 LL |     option.map(|some| 42;
-   |               ^
+   |               - unclosed delimiter
+...
+LL | } //~ ERROR: incorrect close delimiter
+   | ^ incorrect close delimiter
 
 error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;`
   --> $DIR/issue-10636-2.rs:15:25