1
Fork 0

Remove -Z continue-parse-after-error

This commit is contained in:
Vadim Petrochenkov 2020-01-08 21:25:42 +03:00
parent ed6468da16
commit 41a93cba38
36 changed files with 77 additions and 125 deletions

View file

@ -1679,7 +1679,6 @@ impl SharedEmitterMain {
d.code(code); d.code(code);
} }
handler.emit_diagnostic(&d); handler.emit_diagnostic(&d);
handler.abort_if_errors_and_should_abort();
} }
Ok(SharedEmitterMessage::InlineAsmError(cookie, msg)) => { Ok(SharedEmitterMessage::InlineAsmError(cookie, msg)) => {
sess.span_err(ExpnId::from_u32(cookie).expn_data().call_site, &msg) sess.span_err(ExpnId::from_u32(cookie).expn_data().call_site, &msg)

View file

@ -1178,7 +1178,6 @@ pub fn report_ice(info: &panic::PanicInfo<'_>, bug_report_url: &str) {
if !info.payload().is::<errors::ExplicitBug>() { if !info.payload().is::<errors::ExplicitBug>() {
let d = errors::Diagnostic::new(errors::Level::Bug, "unexpected panic"); let d = errors::Diagnostic::new(errors::Level::Bug, "unexpected panic");
handler.emit_diagnostic(&d); handler.emit_diagnostic(&d);
handler.abort_if_errors_and_should_abort();
} }
let mut xs: Vec<Cow<'static, str>> = vec![ let mut xs: Vec<Cow<'static, str>> = vec![

View file

@ -278,7 +278,6 @@ struct HandlerInner {
err_count: usize, err_count: usize,
deduplicated_err_count: usize, deduplicated_err_count: usize,
emitter: Box<dyn Emitter + sync::Send>, emitter: Box<dyn Emitter + sync::Send>,
continue_after_error: bool,
delayed_span_bugs: Vec<Diagnostic>, delayed_span_bugs: Vec<Diagnostic>,
/// This set contains the `DiagnosticId` of all emitted diagnostics to avoid /// This set contains the `DiagnosticId` of all emitted diagnostics to avoid
@ -402,7 +401,6 @@ impl Handler {
err_count: 0, err_count: 0,
deduplicated_err_count: 0, deduplicated_err_count: 0,
emitter, emitter,
continue_after_error: true,
delayed_span_bugs: Vec::new(), delayed_span_bugs: Vec::new(),
taught_diagnostics: Default::default(), taught_diagnostics: Default::default(),
emitted_diagnostic_codes: Default::default(), emitted_diagnostic_codes: Default::default(),
@ -412,10 +410,6 @@ impl Handler {
} }
} }
pub fn set_continue_after_error(&self, continue_after_error: bool) {
self.inner.borrow_mut().continue_after_error = continue_after_error;
}
// This is here to not allow mutation of flags; // This is here to not allow mutation of flags;
// as of this writing it's only used in tests in librustc. // as of this writing it's only used in tests in librustc.
pub fn can_emit_warnings(&self) -> bool { pub fn can_emit_warnings(&self) -> bool {
@ -672,10 +666,6 @@ impl Handler {
self.inner.borrow_mut().abort_if_errors() self.inner.borrow_mut().abort_if_errors()
} }
pub fn abort_if_errors_and_should_abort(&self) {
self.inner.borrow_mut().abort_if_errors_and_should_abort()
}
/// `true` if we haven't taught a diagnostic with this code already. /// `true` if we haven't taught a diagnostic with this code already.
/// The caller must then teach the user about such a diagnostic. /// The caller must then teach the user about such a diagnostic.
/// ///
@ -696,7 +686,6 @@ impl Handler {
fn emit_diag_at_span(&self, mut diag: Diagnostic, sp: impl Into<MultiSpan>) { fn emit_diag_at_span(&self, mut diag: Diagnostic, sp: impl Into<MultiSpan>) {
let mut inner = self.inner.borrow_mut(); let mut inner = self.inner.borrow_mut();
inner.emit_diagnostic(diag.set_span(sp)); inner.emit_diagnostic(diag.set_span(sp));
inner.abort_if_errors_and_should_abort();
} }
pub fn emit_artifact_notification(&self, path: &Path, artifact_type: &str) { pub fn emit_artifact_notification(&self, path: &Path, artifact_type: &str) {
@ -830,14 +819,6 @@ impl HandlerInner {
self.has_errors() || !self.delayed_span_bugs.is_empty() self.has_errors() || !self.delayed_span_bugs.is_empty()
} }
fn abort_if_errors_and_should_abort(&mut self) {
self.emit_stashed_diagnostics();
if self.has_errors() && !self.continue_after_error {
FatalError.raise();
}
}
fn abort_if_errors(&mut self) { fn abort_if_errors(&mut self) {
self.emit_stashed_diagnostics(); self.emit_stashed_diagnostics();
@ -853,7 +834,6 @@ impl HandlerInner {
fn emit_diag_at_span(&mut self, mut diag: Diagnostic, sp: impl Into<MultiSpan>) { fn emit_diag_at_span(&mut self, mut diag: Diagnostic, sp: impl Into<MultiSpan>) {
self.emit_diagnostic(diag.set_span(sp)); self.emit_diagnostic(diag.set_span(sp));
self.abort_if_errors_and_should_abort();
} }
fn delay_span_bug(&mut self, sp: impl Into<MultiSpan>, msg: &str) { fn delay_span_bug(&mut self, sp: impl Into<MultiSpan>, msg: &str) {

View file

@ -54,7 +54,6 @@ use std::rc::Rc;
use std::{env, fs, iter, mem}; use std::{env, fs, iter, mem};
pub fn parse<'a>(sess: &'a Session, input: &Input) -> PResult<'a, ast::Crate> { pub fn parse<'a>(sess: &'a Session, input: &Input) -> PResult<'a, ast::Crate> {
sess.diagnostic().set_continue_after_error(sess.opts.debugging_opts.continue_parse_after_error);
let krate = sess.time("parsing", || match input { let krate = sess.time("parsing", || match input {
Input::File(file) => parse_crate_from_file(file, &sess.parse_sess), Input::File(file) => parse_crate_from_file(file, &sess.parse_sess),
Input::Str { input, name } => { Input::Str { input, name } => {
@ -62,8 +61,6 @@ pub fn parse<'a>(sess: &'a Session, input: &Input) -> PResult<'a, ast::Crate> {
} }
})?; })?;
sess.diagnostic().set_continue_after_error(true);
if sess.opts.debugging_opts.ast_json_noexpand { if sess.opts.debugging_opts.ast_json_noexpand {
println!("{}", json::as_json(&krate)); println!("{}", json::as_json(&krate));
} }

View file

@ -601,10 +601,6 @@ fn test_debugging_options_tracking_hash() {
opts.debugging_opts.report_delayed_bugs = true; opts.debugging_opts.report_delayed_bugs = true;
assert!(reference.dep_tracking_hash() != opts.dep_tracking_hash()); assert!(reference.dep_tracking_hash() != opts.dep_tracking_hash());
opts = reference.clone();
opts.debugging_opts.continue_parse_after_error = true;
assert!(reference.dep_tracking_hash() != opts.dep_tracking_hash());
opts = reference.clone(); opts = reference.clone();
opts.debugging_opts.force_overflow_checks = Some(true); opts.debugging_opts.force_overflow_checks = Some(true);
assert!(reference.dep_tracking_hash() != opts.dep_tracking_hash()); assert!(reference.dep_tracking_hash() != opts.dep_tracking_hash());

View file

@ -772,8 +772,6 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
"set the current terminal width"), "set the current terminal width"),
panic_abort_tests: bool = (false, parse_bool, [TRACKED], panic_abort_tests: bool = (false, parse_bool, [TRACKED],
"support compiling tests with panic=abort"), "support compiling tests with panic=abort"),
continue_parse_after_error: bool = (false, parse_bool, [TRACKED],
"attempt to recover from parse errors (experimental)"),
dep_tasks: bool = (false, parse_bool, [UNTRACKED], dep_tasks: bool = (false, parse_bool, [UNTRACKED],
"print tasks that execute and the color their dep node gets (requires debug build)"), "print tasks that execute and the color their dep node gets (requires debug build)"),
incremental: Option<String> = (None, parse_opt_string, [UNTRACKED], incremental: Option<String> = (None, parse_opt_string, [UNTRACKED],

View file

@ -10,7 +10,7 @@ error: internal compiler error: mutable allocation in constant
LL | const MUTABLE_BEHIND_RAW: *mut i32 = &UnsafeCell::new(42) as *const _ as *mut _; LL | const MUTABLE_BEHIND_RAW: *mut i32 = &UnsafeCell::new(42) as *const _ as *mut _;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', src/librustc_errors/lib.rs:347:17 thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', src/librustc_errors/lib.rs:346:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace. note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
error: internal compiler error: unexpected panic error: internal compiler error: unexpected panic

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
// Test that the parser is error correcting missing idents. Despite a parsing // Test that the parser is error correcting missing idents. Despite a parsing
// error (or two), we still run type checking (and don't get extra errors there). // error (or two), we still run type checking (and don't get extra errors there).

View file

@ -1,17 +1,17 @@
error: unexpected token: `;` error: unexpected token: `;`
--> $DIR/parse-error-correct.rs:8:15 --> $DIR/parse-error-correct.rs:6:15
| |
LL | let x = y.; LL | let x = y.;
| ^ | ^
error: unexpected token: `(` error: unexpected token: `(`
--> $DIR/parse-error-correct.rs:9:15 --> $DIR/parse-error-correct.rs:7:15
| |
LL | let x = y.(); LL | let x = y.();
| ^ | ^
error[E0618]: expected function, found `{integer}` error[E0618]: expected function, found `{integer}`
--> $DIR/parse-error-correct.rs:9:13 --> $DIR/parse-error-correct.rs:7:13
| |
LL | let y = 42; LL | let y = 42;
| - `{integer}` defined here | - `{integer}` defined here
@ -22,7 +22,7 @@ LL | let x = y.();
| call expression requires function | call expression requires function
error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields
--> $DIR/parse-error-correct.rs:11:15 --> $DIR/parse-error-correct.rs:9:15
| |
LL | let x = y.foo; LL | let x = y.foo;
| ^^^ | ^^^

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
// Test that we can recover from missing braces in the parser. // Test that we can recover from missing braces in the parser.
trait Foo { trait Foo {

View file

@ -1,5 +1,5 @@
error: this file contains an unclosed delimiter error: this file contains an unclosed delimiter
--> $DIR/parser-recovery-1.rs:15:54 --> $DIR/parser-recovery-1.rs:13:54
| |
LL | trait Foo { LL | trait Foo {
| - unclosed delimiter | - unclosed delimiter
@ -13,19 +13,19 @@ LL | }
| ^ | ^
error: unexpected token: `;` error: unexpected token: `;`
--> $DIR/parser-recovery-1.rs:12:15 --> $DIR/parser-recovery-1.rs:10:15
| |
LL | let x = y.; LL | let x = y.;
| ^ | ^
error[E0425]: cannot find function `foo` in this scope error[E0425]: cannot find function `foo` in this scope
--> $DIR/parser-recovery-1.rs:7:17 --> $DIR/parser-recovery-1.rs:5:17
| |
LL | let x = foo(); LL | let x = foo();
| ^^^ not found in this scope | ^^^ not found in this scope
error[E0425]: cannot find value `y` in this scope error[E0425]: cannot find value `y` in this scope
--> $DIR/parser-recovery-1.rs:12:13 --> $DIR/parser-recovery-1.rs:10:13
| |
LL | let x = y.; LL | let x = y.;
| ^ not found in this scope | ^ not found in this scope

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
// Test that we can recover from mismatched braces in the parser. // Test that we can recover from mismatched braces in the parser.
trait Foo { trait Foo {

View file

@ -1,11 +1,11 @@
error: unexpected token: `;` error: unexpected token: `;`
--> $DIR/parser-recovery-2.rs:12:15 --> $DIR/parser-recovery-2.rs:10:15
| |
LL | let x = y.; LL | let x = y.;
| ^ | ^
error: mismatched closing delimiter: `)` error: mismatched closing delimiter: `)`
--> $DIR/parser-recovery-2.rs:8:5 --> $DIR/parser-recovery-2.rs:6:5
| |
LL | fn bar() { LL | fn bar() {
| - unclosed delimiter | - unclosed delimiter
@ -14,13 +14,13 @@ LL | )
| ^ mismatched closing delimiter | ^ mismatched closing delimiter
error[E0425]: cannot find function `foo` in this scope error[E0425]: cannot find function `foo` in this scope
--> $DIR/parser-recovery-2.rs:7:17 --> $DIR/parser-recovery-2.rs:5:17
| |
LL | let x = foo(); LL | let x = foo();
| ^^^ not found in this scope | ^^^ not found in this scope
error[E0425]: cannot find value `y` in this scope error[E0425]: cannot find value `y` in this scope
--> $DIR/parser-recovery-2.rs:12:13 --> $DIR/parser-recovery-2.rs:10:13
| |
LL | let x = y.; LL | let x = y.;
| ^ not found in this scope | ^ not found in this scope

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
fn main() { fn main() {
let x = "\x80"; //~ ERROR may only be used let x = "\x80"; //~ ERROR may only be used
let y = "\xff"; //~ ERROR may only be used let y = "\xff"; //~ ERROR may only be used

View file

@ -1,17 +1,17 @@
error: this form of character escape may only be used with characters in the range [\x00-\x7f] error: this form of character escape may only be used with characters in the range [\x00-\x7f]
--> $DIR/ascii-only-character-escape.rs:4:14 --> $DIR/ascii-only-character-escape.rs:2:14
| |
LL | let x = "\x80"; LL | let x = "\x80";
| ^^^^ | ^^^^
error: this form of character escape may only be used with characters in the range [\x00-\x7f] error: this form of character escape may only be used with characters in the range [\x00-\x7f]
--> $DIR/ascii-only-character-escape.rs:5:14 --> $DIR/ascii-only-character-escape.rs:3:14
| |
LL | let y = "\xff"; LL | let y = "\xff";
| ^^^^ | ^^^^
error: this form of character escape may only be used with characters in the range [\x00-\x7f] error: this form of character escape may only be used with characters in the range [\x00-\x7f]
--> $DIR/ascii-only-character-escape.rs:6:14 --> $DIR/ascii-only-character-escape.rs:4:14
| |
LL | let z = "\xe2"; LL | let z = "\xe2";
| ^^^^ | ^^^^

View file

@ -1,7 +1,6 @@
// compile-flags: -Z continue-parse-after-error
// ignore-tidy-cr // ignore-tidy-cr
// ignore-tidy-tab // ignore-tidy-tab
fn main() { fn main() {
// these literals are just silly. // these literals are just silly.
'''; ''';

View file

@ -1,11 +1,11 @@
error: character constant must be escaped: ' error: character constant must be escaped: '
--> $DIR/bad-char-literals.rs:7:6 --> $DIR/bad-char-literals.rs:6:6
| |
LL | '''; LL | ''';
| ^ | ^
error: character constant must be escaped: \n error: character constant must be escaped: \n
--> $DIR/bad-char-literals.rs:11:6 --> $DIR/bad-char-literals.rs:10:6
| |
LL | ' LL | '
| ______^ | ______^
@ -13,13 +13,13 @@ LL | | ';
| |_ | |_
error: character constant must be escaped: \r error: character constant must be escaped: \r
--> $DIR/bad-char-literals.rs:16:6 --> $DIR/bad-char-literals.rs:15:6
| |
LL | ' '; LL | ' ';
| ^ | ^
error: character constant must be escaped: \t error: character constant must be escaped: \t
--> $DIR/bad-char-literals.rs:19:6 --> $DIR/bad-char-literals.rs:18:6
| |
LL | ' '; LL | ' ';
| ^^^^ | ^^^^

View file

@ -1,6 +1,3 @@
// compile-flags: -Z continue-parse-after-error
// ignore-tidy-tab // ignore-tidy-tab
static FOO: u8 = b'\f'; //~ ERROR unknown byte escape static FOO: u8 = b'\f'; //~ ERROR unknown byte escape

View file

@ -1,41 +1,41 @@
error: unknown byte escape: f error: unknown byte escape: f
--> $DIR/byte-literals.rs:6:21 --> $DIR/byte-literals.rs:3:21
| |
LL | static FOO: u8 = b'\f'; LL | static FOO: u8 = b'\f';
| ^ unknown byte escape | ^ unknown byte escape
error: unknown byte escape: f error: unknown byte escape: f
--> $DIR/byte-literals.rs:9:8 --> $DIR/byte-literals.rs:6:8
| |
LL | b'\f'; LL | b'\f';
| ^ unknown byte escape | ^ unknown byte escape
error: invalid character in numeric character escape: Z error: invalid character in numeric character escape: Z
--> $DIR/byte-literals.rs:10:10 --> $DIR/byte-literals.rs:7:10
| |
LL | b'\x0Z'; LL | b'\x0Z';
| ^ | ^
error: byte constant must be escaped: \t error: byte constant must be escaped: \t
--> $DIR/byte-literals.rs:11:7 --> $DIR/byte-literals.rs:8:7
| |
LL | b' '; LL | b' ';
| ^^^^ | ^^^^
error: byte constant must be escaped: ' error: byte constant must be escaped: '
--> $DIR/byte-literals.rs:12:7 --> $DIR/byte-literals.rs:9:7
| |
LL | b'''; LL | b''';
| ^ | ^
error: byte constant must be ASCII. Use a \xHH escape for a non-ASCII byte error: byte constant must be ASCII. Use a \xHH escape for a non-ASCII byte
--> $DIR/byte-literals.rs:13:7 --> $DIR/byte-literals.rs:10:7
| |
LL | b'é'; LL | b'é';
| ^ | ^
error: unterminated byte constant error: unterminated byte constant
--> $DIR/byte-literals.rs:14:6 --> $DIR/byte-literals.rs:11:6
| |
LL | b'a LL | b'a
| ^^^^ | ^^^^

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
static FOO: &'static [u8] = b"\f"; //~ ERROR unknown byte escape static FOO: &'static [u8] = b"\f"; //~ ERROR unknown byte escape
pub fn main() { pub fn main() {

View file

@ -1,29 +1,29 @@
error: unknown byte escape: f error: unknown byte escape: f
--> $DIR/byte-string-literals.rs:3:32 --> $DIR/byte-string-literals.rs:1:32
| |
LL | static FOO: &'static [u8] = b"\f"; LL | static FOO: &'static [u8] = b"\f";
| ^ unknown byte escape | ^ unknown byte escape
error: unknown byte escape: f error: unknown byte escape: f
--> $DIR/byte-string-literals.rs:6:8 --> $DIR/byte-string-literals.rs:4:8
| |
LL | b"\f"; LL | b"\f";
| ^ unknown byte escape | ^ unknown byte escape
error: invalid character in numeric character escape: Z error: invalid character in numeric character escape: Z
--> $DIR/byte-string-literals.rs:7:10 --> $DIR/byte-string-literals.rs:5:10
| |
LL | b"\x0Z"; LL | b"\x0Z";
| ^ | ^
error: byte constant must be ASCII. Use a \xHH escape for a non-ASCII byte error: byte constant must be ASCII. Use a \xHH escape for a non-ASCII byte
--> $DIR/byte-string-literals.rs:8:7 --> $DIR/byte-string-literals.rs:6:7
| |
LL | b"é"; LL | b"é";
| ^ | ^
error: unterminated double quote byte string error: unterminated double quote byte string
--> $DIR/byte-string-literals.rs:9:6 --> $DIR/byte-string-literals.rs:7:6
| |
LL | b"a LL | b"a
| ______^ | ______^

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
impl ! {} // OK impl ! {} // OK
impl ! where u8: Copy {} // OK impl ! where u8: Copy {} // OK

View file

@ -1,29 +1,29 @@
error: missing `for` in a trait impl error: missing `for` in a trait impl
--> $DIR/impl-parsing.rs:6:11 --> $DIR/impl-parsing.rs:4:11
| |
LL | impl Trait Type {} LL | impl Trait Type {}
| ^ help: add `for` here | ^ help: add `for` here
error: missing `for` in a trait impl error: missing `for` in a trait impl
--> $DIR/impl-parsing.rs:7:11 --> $DIR/impl-parsing.rs:5:11
| |
LL | impl Trait .. {} LL | impl Trait .. {}
| ^ help: add `for` here | ^ help: add `for` here
error: expected a trait, found type error: expected a trait, found type
--> $DIR/impl-parsing.rs:8:6 --> $DIR/impl-parsing.rs:6:6
| |
LL | impl ?Sized for Type {} LL | impl ?Sized for Type {}
| ^^^^^^ | ^^^^^^
error: expected a trait, found type error: expected a trait, found type
--> $DIR/impl-parsing.rs:9:6 --> $DIR/impl-parsing.rs:7:6
| |
LL | impl ?Sized for .. {} LL | impl ?Sized for .. {}
| ^^^^^^ | ^^^^^^
error: expected `impl`, found `FAIL` error: expected `impl`, found `FAIL`
--> $DIR/impl-parsing.rs:11:16 --> $DIR/impl-parsing.rs:9:16
| |
LL | default unsafe FAIL LL | default unsafe FAIL
| ^^^^ expected `impl` | ^^^^ expected `impl`

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
fn main() { fn main() {
let _ = b"\u{a66e}"; let _ = b"\u{a66e}";
//~^ ERROR unicode escape sequences cannot be used as a byte or in a byte string //~^ ERROR unicode escape sequences cannot be used as a byte or in a byte string

View file

@ -1,17 +1,17 @@
error: unicode escape sequences cannot be used as a byte or in a byte string error: unicode escape sequences cannot be used as a byte or in a byte string
--> $DIR/issue-23620-invalid-escapes.rs:4:15 --> $DIR/issue-23620-invalid-escapes.rs:2:15
| |
LL | let _ = b"\u{a66e}"; LL | let _ = b"\u{a66e}";
| ^^^^^^^^ | ^^^^^^^^
error: unicode escape sequences cannot be used as a byte or in a byte string error: unicode escape sequences cannot be used as a byte or in a byte string
--> $DIR/issue-23620-invalid-escapes.rs:7:15 --> $DIR/issue-23620-invalid-escapes.rs:5:15
| |
LL | let _ = b'\u{a66e}'; LL | let _ = b'\u{a66e}';
| ^^^^^^^^ | ^^^^^^^^
error: incorrect unicode escape sequence error: incorrect unicode escape sequence
--> $DIR/issue-23620-invalid-escapes.rs:10:15 --> $DIR/issue-23620-invalid-escapes.rs:8:15
| |
LL | let _ = b'\u'; LL | let _ = b'\u';
| ^^ incorrect unicode escape sequence | ^^ incorrect unicode escape sequence
@ -19,43 +19,43 @@ LL | let _ = b'\u';
= help: format of unicode escape sequences is `\u{...}` = help: format of unicode escape sequences is `\u{...}`
error: numeric character escape is too short error: numeric character escape is too short
--> $DIR/issue-23620-invalid-escapes.rs:13:15 --> $DIR/issue-23620-invalid-escapes.rs:11:15
| |
LL | let _ = b'\x5'; LL | let _ = b'\x5';
| ^^^ | ^^^
error: invalid character in numeric character escape: x error: invalid character in numeric character escape: x
--> $DIR/issue-23620-invalid-escapes.rs:16:17 --> $DIR/issue-23620-invalid-escapes.rs:14:17
| |
LL | let _ = b'\xxy'; LL | let _ = b'\xxy';
| ^ | ^
error: numeric character escape is too short error: numeric character escape is too short
--> $DIR/issue-23620-invalid-escapes.rs:19:14 --> $DIR/issue-23620-invalid-escapes.rs:17:14
| |
LL | let _ = '\x5'; LL | let _ = '\x5';
| ^^^ | ^^^
error: invalid character in numeric character escape: x error: invalid character in numeric character escape: x
--> $DIR/issue-23620-invalid-escapes.rs:22:16 --> $DIR/issue-23620-invalid-escapes.rs:20:16
| |
LL | let _ = '\xxy'; LL | let _ = '\xxy';
| ^ | ^
error: unicode escape sequences cannot be used as a byte or in a byte string error: unicode escape sequences cannot be used as a byte or in a byte string
--> $DIR/issue-23620-invalid-escapes.rs:25:15 --> $DIR/issue-23620-invalid-escapes.rs:23:15
| |
LL | let _ = b"\u{a4a4} \xf \u"; LL | let _ = b"\u{a4a4} \xf \u";
| ^^^^^^^^ | ^^^^^^^^
error: invalid character in numeric character escape: error: invalid character in numeric character escape:
--> $DIR/issue-23620-invalid-escapes.rs:25:27 --> $DIR/issue-23620-invalid-escapes.rs:23:27
| |
LL | let _ = b"\u{a4a4} \xf \u"; LL | let _ = b"\u{a4a4} \xf \u";
| ^ | ^
error: incorrect unicode escape sequence error: incorrect unicode escape sequence
--> $DIR/issue-23620-invalid-escapes.rs:25:28 --> $DIR/issue-23620-invalid-escapes.rs:23:28
| |
LL | let _ = b"\u{a4a4} \xf \u"; LL | let _ = b"\u{a4a4} \xf \u";
| ^^ incorrect unicode escape sequence | ^^ incorrect unicode escape sequence
@ -63,13 +63,13 @@ LL | let _ = b"\u{a4a4} \xf \u";
= help: format of unicode escape sequences is `\u{...}` = help: format of unicode escape sequences is `\u{...}`
error: invalid character in numeric character escape: error: invalid character in numeric character escape:
--> $DIR/issue-23620-invalid-escapes.rs:30:17 --> $DIR/issue-23620-invalid-escapes.rs:28:17
| |
LL | let _ = "\xf \u"; LL | let _ = "\xf \u";
| ^ | ^
error: incorrect unicode escape sequence error: incorrect unicode escape sequence
--> $DIR/issue-23620-invalid-escapes.rs:30:18 --> $DIR/issue-23620-invalid-escapes.rs:28:18
| |
LL | let _ = "\xf \u"; LL | let _ = "\xf \u";
| ^^ incorrect unicode escape sequence | ^^ incorrect unicode escape sequence
@ -77,7 +77,7 @@ LL | let _ = "\xf \u";
= help: format of unicode escape sequences is `\u{...}` = help: format of unicode escape sequences is `\u{...}`
error: incorrect unicode escape sequence error: incorrect unicode escape sequence
--> $DIR/issue-23620-invalid-escapes.rs:34:14 --> $DIR/issue-23620-invalid-escapes.rs:32:14
| |
LL | let _ = "\u8f"; LL | let _ = "\u8f";
| ^^-- | ^^--

View file

@ -1,3 +1,4 @@
"\u\\" "\u\\"
//~^ ERROR incorrect unicode escape sequence //~^ ERROR incorrect unicode escape sequence
//~| ERROR invalid trailing slash in literal //~| ERROR invalid trailing slash in literal
//~| ERROR expected item, found `"\u\\"`

View file

@ -12,5 +12,11 @@ error: invalid trailing slash in literal
LL | "\u\" LL | "\u\"
| ^ | ^
error: aborting due to 2 previous errors error: expected item, found `"\u\"`
--> $DIR/issue-62913.rs:1:1
|
LL | "\u\"
| ^^^^^^ expected item
error: aborting due to 3 previous errors

View file

@ -1,4 +1,3 @@
// compile-flags: -Z continue-parse-after-error
static c3: char = static c3: char =
'\x1' //~ ERROR: numeric character escape is too short '\x1' //~ ERROR: numeric character escape is too short
; ;

View file

@ -1,23 +1,23 @@
error: numeric character escape is too short error: numeric character escape is too short
--> $DIR/lex-bad-char-literals-1.rs:3:6 --> $DIR/lex-bad-char-literals-1.rs:2:6
| |
LL | '\x1' LL | '\x1'
| ^^^ | ^^^
error: numeric character escape is too short error: numeric character escape is too short
--> $DIR/lex-bad-char-literals-1.rs:7:6 --> $DIR/lex-bad-char-literals-1.rs:6:6
| |
LL | "\x1" LL | "\x1"
| ^^^ | ^^^
error: unknown character escape: \u{25cf} error: unknown character escape: \u{25cf}
--> $DIR/lex-bad-char-literals-1.rs:11:7 --> $DIR/lex-bad-char-literals-1.rs:10:7
| |
LL | '\●' LL | '\●'
| ^ unknown character escape | ^ unknown character escape
error: unknown character escape: \u{25cf} error: unknown character escape: \u{25cf}
--> $DIR/lex-bad-char-literals-1.rs:15:7 --> $DIR/lex-bad-char-literals-1.rs:14:7
| |
LL | "\●" LL | "\●"
| ^ unknown character escape | ^ unknown character escape

View file

@ -1,4 +1,3 @@
// compile-flags: -Z continue-parse-after-error
fn main() { fn main() {
let _: char = ''; let _: char = '';
//~^ ERROR: empty character literal //~^ ERROR: empty character literal

View file

@ -1,17 +1,17 @@
error: empty character literal error: empty character literal
--> $DIR/lex-bad-char-literals-7.rs:3:20 --> $DIR/lex-bad-char-literals-7.rs:2:20
| |
LL | let _: char = ''; LL | let _: char = '';
| ^ | ^
error: empty unicode escape (must have at least 1 hex digit) error: empty unicode escape (must have at least 1 hex digit)
--> $DIR/lex-bad-char-literals-7.rs:5:20 --> $DIR/lex-bad-char-literals-7.rs:4:20
| |
LL | let _: char = '\u{}'; LL | let _: char = '\u{}';
| ^^^^ | ^^^^
error: unterminated character literal error: unterminated character literal
--> $DIR/lex-bad-char-literals-7.rs:12:13 --> $DIR/lex-bad-char-literals-7.rs:11:13
| |
LL | let _ = ' hello // here's a comment LL | let _ = ' hello // here's a comment
| ^^^^^^^^ | ^^^^^^^^

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
// ignore-tidy-cr // ignore-tidy-cr
/// doc comment with bare CR: ' ' /// doc comment with bare CR: ' '

View file

@ -1,41 +1,41 @@
error: bare CR not allowed in doc-comment error: bare CR not allowed in doc-comment
--> $DIR/lex-bare-cr-string-literal-doc-comment.rs:5:32 --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:3:32
| |
LL | /// doc comment with bare CR: ' ' LL | /// doc comment with bare CR: ' '
| ^ | ^
error: bare CR not allowed in block doc-comment error: bare CR not allowed in block doc-comment
--> $DIR/lex-bare-cr-string-literal-doc-comment.rs:9:38 --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:7:38
| |
LL | /** block doc comment with bare CR: ' ' */ LL | /** block doc comment with bare CR: ' ' */
| ^ | ^
error: bare CR not allowed in doc-comment error: bare CR not allowed in doc-comment
--> $DIR/lex-bare-cr-string-literal-doc-comment.rs:14:36 --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:12:36
| |
LL | //! doc comment with bare CR: ' ' LL | //! doc comment with bare CR: ' '
| ^ | ^
error: bare CR not allowed in block doc-comment error: bare CR not allowed in block doc-comment
--> $DIR/lex-bare-cr-string-literal-doc-comment.rs:17:42 --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:15:42
| |
LL | /*! block doc comment with bare CR: ' ' */ LL | /*! block doc comment with bare CR: ' ' */
| ^ | ^
error: bare CR not allowed in string, use \r instead error: bare CR not allowed in string, use \r instead
--> $DIR/lex-bare-cr-string-literal-doc-comment.rs:21:18 --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:19:18
| |
LL | let _s = "foo bar"; LL | let _s = "foo bar";
| ^ | ^
error: bare CR not allowed in raw string error: bare CR not allowed in raw string
--> $DIR/lex-bare-cr-string-literal-doc-comment.rs:24:19 --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:22:19
| |
LL | let _s = r"bar foo"; LL | let _s = r"bar foo";
| ^ | ^
error: unknown character escape: \r error: unknown character escape: \r
--> $DIR/lex-bare-cr-string-literal-doc-comment.rs:27:19 --> $DIR/lex-bare-cr-string-literal-doc-comment.rs:25:19
| |
LL | let _s = "foo\ bar"; LL | let _s = "foo\ bar";
| ^ unknown character escape | ^ unknown character escape

View file

@ -1,5 +1,5 @@
// ignore-tidy-cr // ignore-tidy-cr
// compile-flags: -Z continue-parse-after-error
pub fn main() { pub fn main() {
br"a "; //~ ERROR bare CR not allowed in raw string br"a "; //~ ERROR bare CR not allowed in raw string
br"é"; //~ ERROR raw byte string must be ASCII br"é"; //~ ERROR raw byte string must be ASCII

View file

@ -1,5 +1,3 @@
// compile-flags: -Z continue-parse-after-error
struct Foo { struct Foo {
x: isize, x: isize,
y: isize, y: isize,

View file

@ -1,17 +1,17 @@
error: field expressions may not have generic arguments error: field expressions may not have generic arguments
--> $DIR/type-parameters-in-field-exprs.rs:13:10 --> $DIR/type-parameters-in-field-exprs.rs:11:10
| |
LL | f.x::<isize>; LL | f.x::<isize>;
| ^^^^^^^ | ^^^^^^^
error: field expressions may not have generic arguments error: field expressions may not have generic arguments
--> $DIR/type-parameters-in-field-exprs.rs:15:10 --> $DIR/type-parameters-in-field-exprs.rs:13:10
| |
LL | f.x::<>; LL | f.x::<>;
| ^^ | ^^
error: field expressions may not have generic arguments error: field expressions may not have generic arguments
--> $DIR/type-parameters-in-field-exprs.rs:17:7 --> $DIR/type-parameters-in-field-exprs.rs:15:7
| |
LL | f.x::(); LL | f.x::();
| ^^^^^ | ^^^^^