rust/src/test/parse-fail/bad-char-literals.rs
Ryan Cumming b9441f2428 Improve char escaping in lexer messages
Currently ', " and \ are escaped as \', \" and \\ respectively. This
leads to confusing messages such as `error: unknown start of token: \\`
when encountering a single backslash.

Fix by emitting printable ASCII characters directly. This will still
escape \r, \n, \t and Unicode characters.

Fixes #47902
2018-02-01 08:19:22 +11:00

31 lines
1,017 B
Rust

// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// compile-flags: -Z parse-only -Z continue-parse-after-error
// ignore-tidy-cr
// ignore-tidy-tab
fn main() {
// these literals are just silly.
''';
//~^ ERROR: character constant must be escaped: '
// note that this is a literal "\n" byte
'
';
//~^^ ERROR: character constant must be escaped: \n
// note that this is a literal "\r" byte
'
'; //~ ERROR: character constant must be escaped: \r
// note that this is a literal tab character here
' ';
//~^ ERROR: character constant must be escaped: \t
}