Do not point at delim spans for complete correct blocks
This commit is contained in:
parent
f4a421ee3c
commit
25b3c82508
3 changed files with 28 additions and 1 deletions
|
@ -97,7 +97,15 @@ impl<'a> StringReader<'a> {
|
||||||
// Correct delimiter.
|
// Correct delimiter.
|
||||||
token::CloseDelim(d) if d == delim => {
|
token::CloseDelim(d) if d == delim => {
|
||||||
let (open_brace, open_brace_span) = self.open_braces.pop().unwrap();
|
let (open_brace, open_brace_span) = self.open_braces.pop().unwrap();
|
||||||
self.matching_delim_spans.push((open_brace, open_brace_span, self.span));
|
if self.open_braces.len() == 0 {
|
||||||
|
// Clear up these spans to avoid suggesting them as we've found
|
||||||
|
// properly matched delimiters so far for an entire block.
|
||||||
|
self.matching_delim_spans.clear();
|
||||||
|
} else {
|
||||||
|
self.matching_delim_spans.push(
|
||||||
|
(open_brace, open_brace_span, self.span),
|
||||||
|
);
|
||||||
|
}
|
||||||
// Parse the close delimiter.
|
// Parse the close delimiter.
|
||||||
self.real_token();
|
self.real_token();
|
||||||
}
|
}
|
||||||
|
|
11
src/test/ui/parser/unmatched-delimiter-at-end-of-file.rs
Normal file
11
src/test/ui/parser/unmatched-delimiter-at-end-of-file.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
struct S {
|
||||||
|
x: usize,
|
||||||
|
y: usize,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
S { x: 4,
|
||||||
|
y: 5 };
|
||||||
|
}
|
||||||
|
|
||||||
|
fn foo() { //~ ERROR this file contains an un-closed delimiter
|
|
@ -0,0 +1,8 @@
|
||||||
|
error: this file contains an un-closed delimiter
|
||||||
|
--> $DIR/unmatched-delimiter-at-end-of-file.rs:11:64
|
||||||
|
|
|
||||||
|
LL | fn foo() { //~ ERROR this file contains an un-closed delimiter
|
||||||
|
| - un-closed delimiter ^
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
Loading…
Reference in a new issue