diff options
| author | Greg Chapple <gregchapple1@gmail.com> | 2016-01-07 16:12:28 +0000 |
|---|---|---|
| committer | Greg Chapple <gregchapple1@gmail.com> | 2016-01-14 17:34:42 +0000 |
| commit | acc9428c6a99d199f35032ec7f794385e4c9fd24 (patch) | |
| tree | ea9da6f39079fa1f203a7ada38a6da79a6d7ada1 /src/test/parse-fail | |
| parent | d3c83fef245f1cb2e523c8913b8968c98faec1f4 (diff) | |
Display better snippet for invalid char literal
Given this code:
fn main() {
let _ = 'abcd';
}
The compiler would give a message like:
error: character literal may only contain one codepoint: ';
let _ = 'abcd';
^~
With this change, the message now displays:
error: character literal may only contain one codepoint: 'abcd'
let _ = 'abcd'
^~~~~~
Fixes #30033
Diffstat (limited to 'src/test/parse-fail')
| -rw-r--r-- | src/test/parse-fail/lex-bad-char-literals-1.rs (renamed from src/test/parse-fail/lex-bad-char-literals.rs) | 7 | ||||
| -rw-r--r-- | src/test/parse-fail/lex-bad-char-literals-2.rs | 17 | ||||
| -rw-r--r-- | src/test/parse-fail/lex-bad-char-literals-3.rs | 16 | ||||
| -rw-r--r-- | src/test/parse-fail/lex-bad-char-literals-4.rs | 16 | ||||
| -rw-r--r-- | src/test/parse-fail/lex-bad-char-literals-5.rs | 16 |
5 files changed, 66 insertions, 6 deletions
diff --git a/src/test/parse-fail/lex-bad-char-literals.rs b/src/test/parse-fail/lex-bad-char-literals-1.rs index 6335632455f..7e22a11ca97 100644 --- a/src/test/parse-fail/lex-bad-char-literals.rs +++ b/src/test/parse-fail/lex-bad-char-literals-1.rs @@ -1,4 +1,4 @@ -// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // @@ -25,8 +25,3 @@ static s: &'static str = "\●" //~ ERROR: unknown character escape ; -// THIS MUST BE LAST, since it kills the lexer - -static c: char = - '● //~ ERROR: character literal may only contain one codepoint -; diff --git a/src/test/parse-fail/lex-bad-char-literals-2.rs b/src/test/parse-fail/lex-bad-char-literals-2.rs new file mode 100644 index 00000000000..8bd6808c5ff --- /dev/null +++ b/src/test/parse-fail/lex-bad-char-literals-2.rs @@ -0,0 +1,17 @@ +// Copyright 2016 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 + +// This test needs to the last one appearing in this file as it kills the parser +static c: char = + 'nope' //~ ERROR: character literal may only contain one codepoint: 'nope' +; + diff --git a/src/test/parse-fail/lex-bad-char-literals-3.rs b/src/test/parse-fail/lex-bad-char-literals-3.rs new file mode 100644 index 00000000000..92432dc8b63 --- /dev/null +++ b/src/test/parse-fail/lex-bad-char-literals-3.rs @@ -0,0 +1,16 @@ +// Copyright 2016 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 + +// This test needs to the last one appearing in this file as it kills the parser +static c: char = + '●●' //~ ERROR: character literal may only contain one codepoint: '● +; diff --git a/src/test/parse-fail/lex-bad-char-literals-4.rs b/src/test/parse-fail/lex-bad-char-literals-4.rs new file mode 100644 index 00000000000..b230e623603 --- /dev/null +++ b/src/test/parse-fail/lex-bad-char-literals-4.rs @@ -0,0 +1,16 @@ +// Copyright 2016 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 +// +// This test needs to the last one appearing in this file as it kills the parser +static c: char = + '● //~ ERROR: character literal may only contain one codepoint: '● +; diff --git a/src/test/parse-fail/lex-bad-char-literals-5.rs b/src/test/parse-fail/lex-bad-char-literals-5.rs new file mode 100644 index 00000000000..5259175b186 --- /dev/null +++ b/src/test/parse-fail/lex-bad-char-literals-5.rs @@ -0,0 +1,16 @@ +// Copyright 2016 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 +// +// This test needs to the last one appearing in this file as it kills the parser +static c: char = + '\x10\x10' //~ ERROR: character literal may only contain one codepoint: '\x10 +; |
