about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-01-11 19:56:41 -0800
committerEsteban Küber <esteban@kuber.com.ar>2019-01-11 19:56:41 -0800
commitd8610b31ecfba9bd9430d0acd97baa2bbc481100 (patch)
tree323f39e4b7a325e17a116c1ab00759b6bc098eac
parentfc4b54157fd1732e03689bca12b81f0a496c7913 (diff)
downloadrust-d8610b31ecfba9bd9430d0acd97baa2bbc481100.tar.gz
rust-d8610b31ecfba9bd9430d0acd97baa2bbc481100.zip
Continue evaluating after parsing incorrect binary literal
-rw-r--r--src/libsyntax/parse/lexer/mod.rs2
-rw-r--r--src/test/ui/parser/issue-1802-1.rs5
-rw-r--r--src/test/ui/parser/issue-1802-1.stderr2
-rw-r--r--src/test/ui/parser/issue-1802-2.rs5
-rw-r--r--src/test/ui/parser/issue-1802-2.stderr11
5 files changed, 19 insertions, 6 deletions
diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs
index ecb34e43c59..0e1c3b4b61f 100644
--- a/src/libsyntax/parse/lexer/mod.rs
+++ b/src/libsyntax/parse/lexer/mod.rs
@@ -299,7 +299,7 @@ impl<'a> StringReader<'a> {
 
     /// Report a lexical error with a given span.
     fn err_span(&self, sp: Span, m: &str) {
-        self.sess.span_diagnostic.span_err(sp, m)
+        self.sess.span_diagnostic.struct_span_err(sp, m).emit();
     }
 
 
diff --git a/src/test/ui/parser/issue-1802-1.rs b/src/test/ui/parser/issue-1802-1.rs
index 050e9a258d1..3c34b0d8feb 100644
--- a/src/test/ui/parser/issue-1802-1.rs
+++ b/src/test/ui/parser/issue-1802-1.rs
@@ -1,4 +1,7 @@
-// error-pattern:no valid digits found for number
+fn log(a: i32, b: i32) {}
+
 fn main() {
+    let error = 42;
     log(error, 0b);
+    //~^ ERROR no valid digits found for number
 }
diff --git a/src/test/ui/parser/issue-1802-1.stderr b/src/test/ui/parser/issue-1802-1.stderr
index 5cd6a4f7c68..b7d003df56b 100644
--- a/src/test/ui/parser/issue-1802-1.stderr
+++ b/src/test/ui/parser/issue-1802-1.stderr
@@ -1,5 +1,5 @@
 error: no valid digits found for number
-  --> $DIR/issue-1802-1.rs:3:16
+  --> $DIR/issue-1802-1.rs:5:16
    |
 LL |     log(error, 0b);
    |                ^^
diff --git a/src/test/ui/parser/issue-1802-2.rs b/src/test/ui/parser/issue-1802-2.rs
index 796db66d22e..c5fe7d506d9 100644
--- a/src/test/ui/parser/issue-1802-2.rs
+++ b/src/test/ui/parser/issue-1802-2.rs
@@ -1,4 +1,7 @@
-// error-pattern:no valid digits found for number
+fn log(a: i32, b: i32) {}
+
 fn main() {
+    let error = 42;
     log(error, 0b_usize);
+    //~^ ERROR no valid digits found for number
 }
diff --git a/src/test/ui/parser/issue-1802-2.stderr b/src/test/ui/parser/issue-1802-2.stderr
index c6c04279666..92fce75f8c3 100644
--- a/src/test/ui/parser/issue-1802-2.stderr
+++ b/src/test/ui/parser/issue-1802-2.stderr
@@ -1,8 +1,15 @@
 error: no valid digits found for number
-  --> $DIR/issue-1802-2.rs:3:16
+  --> $DIR/issue-1802-2.rs:5:16
    |
 LL |     log(error, 0b_usize);
    |                ^^^
 
-error: aborting due to previous error
+error[E0308]: mismatched types
+  --> $DIR/issue-1802-2.rs:5:16
+   |
+LL |     log(error, 0b_usize);
+   |                ^^^^^^^^ expected i32, found usize
+
+error: aborting due to 2 previous errors
 
+For more information about this error, try `rustc --explain E0308`.