about summary refs log tree commit diff
diff options
context:
space:
mode:
authorwangxiangqing <wangxiangqing@bytedance.com>2019-10-13 12:59:23 +0800
committerwangxiangqing <wangxiangqing@bytedance.com>2019-10-15 23:59:22 +0800
commitfe819a074c748fd3d11fcc0be8164645a7cd58db (patch)
tree06587f9c42acf4abc56400fffdd2a5b61feb159c
parent888d0ba8df38681c08ac25f30ff4cbfad8168d90 (diff)
downloadrust-fe819a074c748fd3d11fcc0be8164645a7cd58db.tar.gz
rust-fe819a074c748fd3d11fcc0be8164645a7cd58db.zip
Collect occurrences of for mismatched braces diagnostic
Change-Id: I20ba0b62308370ee961141fa1aefc4b9c9f0cb3a
-rw-r--r--src/libsyntax/parse/lexer/tokentrees.rs2
-rw-r--r--src/test/ui/parser/mismatched-delim-brace-empty-block.rs4
-rw-r--r--src/test/ui/parser/mismatched-delim-brace-empty-block.stderr15
3 files changed, 13 insertions, 8 deletions
diff --git a/src/libsyntax/parse/lexer/tokentrees.rs b/src/libsyntax/parse/lexer/tokentrees.rs
index b088d160b92..b4dd23c9f9b 100644
--- a/src/libsyntax/parse/lexer/tokentrees.rs
+++ b/src/libsyntax/parse/lexer/tokentrees.rs
@@ -126,7 +126,7 @@ impl<'a> TokenTreesReader<'a> {
                         let (open_brace, open_brace_span) = self.open_braces.pop().unwrap();
                         let close_brace_span = self.token.span;
 
-                        if close_brace_span.lo() == open_brace_span.hi() {
+                        if tts.is_empty() {
                             let empty_block_span = open_brace_span.to(close_brace_span);
                             self.last_delim_empty_block_spans.insert(delim, empty_block_span);
                         }
diff --git a/src/test/ui/parser/mismatched-delim-brace-empty-block.rs b/src/test/ui/parser/mismatched-delim-brace-empty-block.rs
index bcc95c09e1e..0f5a2cb09ec 100644
--- a/src/test/ui/parser/mismatched-delim-brace-empty-block.rs
+++ b/src/test/ui/parser/mismatched-delim-brace-empty-block.rs
@@ -1,3 +1,5 @@
-fn main() {}
+fn main() {
+
+}
     let _ = ();
 } //~ ERROR unexpected close delimiter
diff --git a/src/test/ui/parser/mismatched-delim-brace-empty-block.stderr b/src/test/ui/parser/mismatched-delim-brace-empty-block.stderr
index 82fe8930c32..5ae5fc91a4e 100644
--- a/src/test/ui/parser/mismatched-delim-brace-empty-block.stderr
+++ b/src/test/ui/parser/mismatched-delim-brace-empty-block.stderr
@@ -1,11 +1,14 @@
 error: unexpected close delimiter: `}`
-  --> $DIR/mismatched-delim-brace-empty-block.rs:3:1
+  --> $DIR/mismatched-delim-brace-empty-block.rs:5:1
    |
-LL | fn main() {}
-   |           -- this block is empty, you might have not meant to close it
-LL |     let _ = ();
-LL | }
-   | ^ unexpected close delimiter
+LL |   fn main() {
+   |  ___________-
+LL | |
+LL | | }
+   | |_- this block is empty, you might have not meant to close it
+LL |       let _ = ();
+LL |   }
+   |   ^ unexpected close delimiter
 
 error: aborting due to previous error