From d8610b31ecfba9bd9430d0acd97baa2bbc481100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20K=C3=BCber?= Date: Fri, 11 Jan 2019 19:56:41 -0800 Subject: [PATCH] Continue evaluating after parsing incorrect binary literal --- src/libsyntax/parse/lexer/mod.rs | 2 +- src/test/ui/parser/issue-1802-1.rs | 5 ++++- src/test/ui/parser/issue-1802-1.stderr | 2 +- src/test/ui/parser/issue-1802-2.rs | 5 ++++- src/test/ui/parser/issue-1802-2.stderr | 11 +++++++++-- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/libsyntax/parse/lexer/mod.rs b/src/libsyntax/parse/lexer/mod.rs index ecb34e43c590..0e1c3b4b61f3 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 050e9a258d1e..3c34b0d8febb 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 5cd6a4f7c686..b7d003df56b7 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 796db66d22e9..c5fe7d506d93 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 c6c04279666a..92fce75f8c37 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`.