about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2017-11-23 13:16:19 -0800
committerEsteban Küber <esteban@kuber.com.ar>2017-11-24 07:34:33 -0800
commit0e93b75d27050e175c8ca1b401fa2f69378b378a (patch)
treed63a01a7803a3601bf3f189d2c3bcef29b728ca4
parent4e2d1b946696357d7a57dcc6dfd47c42f91c3c10 (diff)
downloadrust-0e93b75d27050e175c8ca1b401fa2f69378b378a.tar.gz
rust-0e93b75d27050e175c8ca1b401fa2f69378b378a.zip
Revert to correct recovery behavior
-rw-r--r--src/libsyntax/parse/parser.rs1
-rw-r--r--src/test/parse-fail/issue-22712.rs2
-rw-r--r--src/test/parse-fail/issue-24197.rs2
-rw-r--r--src/test/parse-fail/pat-lt-bracket-5.rs2
-rw-r--r--src/test/parse-fail/pat-ranges-1.rs2
-rw-r--r--src/test/parse-fail/pat-ranges-2.rs2
-rw-r--r--src/test/parse-fail/pat-ranges-3.rs2
-rw-r--r--src/test/parse-fail/pat-ranges-4.rs2
-rw-r--r--src/test/parse-fail/range-3.rs2
-rw-r--r--src/test/parse-fail/range-4.rs2
10 files changed, 10 insertions, 9 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 07b918da0d1..d3104e0a553 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -4273,6 +4273,7 @@ impl<'a> Parser<'a> {
                 Err(mut err) => {
                     err.emit();
                     self.recover_stmt_(SemiColonMode::Ignore, BlockMode::Break);
+                    self.eat(&token::CloseDelim(token::Brace));
                     break;
                 }
                 Ok(stmt) => stmt,
diff --git a/src/test/parse-fail/issue-22712.rs b/src/test/parse-fail/issue-22712.rs
index 84d4a757a07..ed936cdd9a9 100644
--- a/src/test/parse-fail/issue-22712.rs
+++ b/src/test/parse-fail/issue-22712.rs
@@ -14,6 +14,6 @@ struct Foo<B> {
 
 fn bar() {
     let Foo<Vec<u8>>  //~ ERROR expected one of `:`, `;`, `=`, or `@`, found `<`
-}  //~ ERROR expected item, found `}`
+}
 
 fn main() {}
diff --git a/src/test/parse-fail/issue-24197.rs b/src/test/parse-fail/issue-24197.rs
index b6bc3a29e06..37d62182612 100644
--- a/src/test/parse-fail/issue-24197.rs
+++ b/src/test/parse-fail/issue-24197.rs
@@ -10,4 +10,4 @@
 
 fn main() {
     let buf[0] = 0; //~ ERROR expected one of `:`, `;`, `=`, or `@`, found `[`
-}  //~ ERROR expected item, found `}`
+}
diff --git a/src/test/parse-fail/pat-lt-bracket-5.rs b/src/test/parse-fail/pat-lt-bracket-5.rs
index 95ad006402e..421d7a05bef 100644
--- a/src/test/parse-fail/pat-lt-bracket-5.rs
+++ b/src/test/parse-fail/pat-lt-bracket-5.rs
@@ -10,4 +10,4 @@
 
 fn main() {
     let v[0] = v[1]; //~ ERROR expected one of `:`, `;`, `=`, or `@`, found `[`
-} //~ ERROR expected item, found `}`
+}
diff --git a/src/test/parse-fail/pat-ranges-1.rs b/src/test/parse-fail/pat-ranges-1.rs
index 7a42f453c74..857a3924aec 100644
--- a/src/test/parse-fail/pat-ranges-1.rs
+++ b/src/test/parse-fail/pat-ranges-1.rs
@@ -12,4 +12,4 @@
 
 fn main() {
     let macropus!() ..= 11 = 12; //~ error: expected one of `:`, `;`, or `=`, found `..=`
-} //~ ERROR expected item, found `}`
+}
diff --git a/src/test/parse-fail/pat-ranges-2.rs b/src/test/parse-fail/pat-ranges-2.rs
index ad0a3b3b67f..64c749333cf 100644
--- a/src/test/parse-fail/pat-ranges-2.rs
+++ b/src/test/parse-fail/pat-ranges-2.rs
@@ -12,4 +12,4 @@
 
 fn main() {
     let 10 ..= makropulos!() = 12; //~ error: expected one of `::`, `:`, `;`, or `=`, found `!`
-} //~ ERROR expected item, found `}`
+}
diff --git a/src/test/parse-fail/pat-ranges-3.rs b/src/test/parse-fail/pat-ranges-3.rs
index 4a9a12bcdd2..1327a9fab36 100644
--- a/src/test/parse-fail/pat-ranges-3.rs
+++ b/src/test/parse-fail/pat-ranges-3.rs
@@ -12,4 +12,4 @@
 
 fn main() {
     let 10 ..= 10 + 3 = 12; //~ expected one of `:`, `;`, or `=`, found `+`
-} //~ ERROR expected item, found `}`
+}
diff --git a/src/test/parse-fail/pat-ranges-4.rs b/src/test/parse-fail/pat-ranges-4.rs
index 32fdc263b2d..c159c770250 100644
--- a/src/test/parse-fail/pat-ranges-4.rs
+++ b/src/test/parse-fail/pat-ranges-4.rs
@@ -13,4 +13,4 @@
 fn main() {
     let 10 - 3 ..= 10 = 8;
     //~^ error: expected one of `...`, `..=`, `..`, `:`, `;`, or `=`, found `-`
-} //~ ERROR expected item, found `}`
+}
diff --git a/src/test/parse-fail/range-3.rs b/src/test/parse-fail/range-3.rs
index f413ac34087..95aa71b0cdf 100644
--- a/src/test/parse-fail/range-3.rs
+++ b/src/test/parse-fail/range-3.rs
@@ -15,4 +15,4 @@
 pub fn main() {
     let r = 1..2..3;
     //~^ ERROR expected one of `.`, `;`, `?`, or an operator, found `..`
-} //~ ERROR expected item, found `}`
+}
diff --git a/src/test/parse-fail/range-4.rs b/src/test/parse-fail/range-4.rs
index 0b385129b23..4500df116a2 100644
--- a/src/test/parse-fail/range-4.rs
+++ b/src/test/parse-fail/range-4.rs
@@ -15,4 +15,4 @@
 pub fn main() {
     let r = ..1..2;
     //~^ ERROR expected one of `.`, `;`, `?`, or an operator, found `..`
-} //~ ERROR expected item, found `}`
+}