Skip to content

Commit 2a74d79

Browse files
committed
Tweak unclosed delimiter parser error
1 parent 67390c0 commit 2a74d79

8 files changed

+44
-45
lines changed

src/libsyntax/parse/lexer/tokentrees.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,12 @@ impl<'a> StringReader<'a> {
7979
let token_str = token_to_string(&self.token);
8080
let msg = format!("incorrect close delimiter: `{}`", token_str);
8181
let mut err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
82+
err.span_label(self.span, "incorrect close delimiter");
8283
// This is a conservative error: only report the last unclosed delimiter.
8384
// The previous unclosed delimiters could actually be closed! The parser
8485
// just hasn't gotten to them yet.
8586
if let Some(&(_, sp)) = self.open_braces.last() {
86-
err.span_note(sp, "unclosed delimiter");
87+
err.span_label(sp, "unclosed delimiter");
8788
};
8889
err.emit();
8990

@@ -118,7 +119,8 @@ impl<'a> StringReader<'a> {
118119
// matching opening delimiter).
119120
let token_str = token_to_string(&self.token);
120121
let msg = format!("unexpected close delimiter: `{}`", token_str);
121-
let err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
122+
let mut err = self.sess.span_diagnostic.struct_span_err(self.span, &msg);
123+
err.span_label(self.span, "unexpected close delimiter");
122124
Err(err)
123125
},
124126
_ => {

src/test/parse-fail/issue-10636-1.rs renamed to src/test/ui/issue-10636-1.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,8 @@
1212

1313
struct Obj { //~ NOTE: unclosed delimiter
1414
member: usize
15-
) //~ ERROR: incorrect close delimiter
15+
)
16+
//~^ ERROR incorrect close delimiter
17+
//~| NOTE incorrect close delimiter
18+
19+
fn main() {}

src/test/ui/issue-10636-1.stderr

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
error: incorrect close delimiter: `)`
2+
--> $DIR/issue-10636-1.rs:15:1
3+
|
4+
LL | struct Obj { //~ NOTE: unclosed delimiter
5+
| - unclosed delimiter
6+
LL | member: usize
7+
LL | )
8+
| ^ incorrect close delimiter
9+
10+
error: aborting due to previous error
11+

src/test/ui/parser-recovery-2.stderr

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
error: incorrect close delimiter: `)`
22
--> $DIR/parser-recovery-2.rs:18:5
33
|
4-
LL | ) //~ ERROR incorrect close delimiter: `)`
5-
| ^
6-
|
7-
note: unclosed delimiter
8-
--> $DIR/parser-recovery-2.rs:16:14
9-
|
104
LL | fn bar() {
11-
| ^
5+
| - unclosed delimiter
6+
LL | let x = foo(); //~ ERROR cannot find function `foo` in this scope
7+
LL | ) //~ ERROR incorrect close delimiter: `)`
8+
| ^ incorrect close delimiter
129

1310
error: unexpected token: `;`
1411
--> $DIR/parser-recovery-2.rs:22:15

src/test/ui/resolve/token-error-correct-2.stderr

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
error: incorrect close delimiter: `)`
22
--> $DIR/token-error-correct-2.rs:16:5
33
|
4-
LL | ) //~ ERROR: incorrect close delimiter: `)`
5-
| ^
6-
|
7-
note: unclosed delimiter
8-
--> $DIR/token-error-correct-2.rs:14:12
9-
|
104
LL | if foo {
11-
| ^
5+
| - unclosed delimiter
6+
LL | //~^ ERROR: cannot find value `foo`
7+
LL | ) //~ ERROR: incorrect close delimiter: `)`
8+
| ^ incorrect close delimiter
129

1310
error[E0425]: cannot find value `foo` in this scope
1411
--> $DIR/token-error-correct-2.rs:14:8

src/test/ui/resolve/token-error-correct-3.stderr

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
error: incorrect close delimiter: `}`
22
--> $DIR/token-error-correct-3.rs:30:9
33
|
4-
LL | } else { //~ ERROR: incorrect close delimiter: `}`
5-
| ^
6-
|
7-
note: unclosed delimiter
8-
--> $DIR/token-error-correct-3.rs:24:21
9-
|
104
LL | callback(path.as_ref(); //~ ERROR expected one of
11-
| ^
5+
| - unclosed delimiter
6+
...
7+
LL | } else { //~ ERROR: incorrect close delimiter: `}`
8+
| ^ incorrect close delimiter
129

1310
error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;`
1411
--> $DIR/token-error-correct-3.rs:24:35

src/test/ui/resolve/token-error-correct.stderr

+8-14
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
11
error: incorrect close delimiter: `}`
22
--> $DIR/token-error-correct.rs:16:1
33
|
4-
LL | }
5-
| ^
6-
|
7-
note: unclosed delimiter
8-
--> $DIR/token-error-correct.rs:14:12
9-
|
104
LL | foo(bar(;
11-
| ^
5+
| - unclosed delimiter
6+
LL | //~^ ERROR: expected expression, found `;`
7+
LL | }
8+
| ^ incorrect close delimiter
129

1310
error: incorrect close delimiter: `}`
1411
--> $DIR/token-error-correct.rs:16:1
1512
|
16-
LL | }
17-
| ^
18-
|
19-
note: unclosed delimiter
20-
--> $DIR/token-error-correct.rs:14:8
21-
|
2213
LL | foo(bar(;
23-
| ^
14+
| - unclosed delimiter
15+
LL | //~^ ERROR: expected expression, found `;`
16+
LL | }
17+
| ^ incorrect close delimiter
2418

2519
error: expected expression, found `;`
2620
--> $DIR/token-error-correct.rs:14:13

src/test/ui/token/issue-10636-2.stderr

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
error: incorrect close delimiter: `}`
22
--> $DIR/issue-10636-2.rs:18:1
33
|
4-
LL | } //~ ERROR: incorrect close delimiter
5-
| ^
6-
|
7-
note: unclosed delimiter
8-
--> $DIR/issue-10636-2.rs:15:15
9-
|
104
LL | option.map(|some| 42;
11-
| ^
5+
| - unclosed delimiter
6+
...
7+
LL | } //~ ERROR: incorrect close delimiter
8+
| ^ incorrect close delimiter
129

1310
error: expected one of `)`, `,`, `.`, `?`, or an operator, found `;`
1411
--> $DIR/issue-10636-2.rs:15:25

0 commit comments

Comments
 (0)