mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-24 12:54:00 +00:00
Fix ICE when pointing at multi bytes character
This commit is contained in:
parent
d107a87d34
commit
4ae99cc843
@ -721,13 +721,9 @@ impl<'a> Parser<'a> {
|
|||||||
Ok(t) => {
|
Ok(t) => {
|
||||||
// Parsed successfully, therefore most probably the code only
|
// Parsed successfully, therefore most probably the code only
|
||||||
// misses a separator.
|
// misses a separator.
|
||||||
let mut exp_span = self.sess.source_map().next_point(sp);
|
|
||||||
if self.sess.source_map().is_multiline(exp_span) {
|
|
||||||
exp_span = sp;
|
|
||||||
}
|
|
||||||
expect_err
|
expect_err
|
||||||
.span_suggestion_short(
|
.span_suggestion_short(
|
||||||
exp_span,
|
sp,
|
||||||
&format!("missing `{}`", token_str),
|
&format!("missing `{}`", token_str),
|
||||||
token_str,
|
token_str,
|
||||||
Applicability::MaybeIncorrect,
|
Applicability::MaybeIncorrect,
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
// Regression test for #80134.
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
(()é);
|
||||||
|
//~^ ERROR: expected one of `)`, `,`, `.`, `?`, or an operator
|
||||||
|
//~| ERROR: cannot find value `é` in this scope
|
||||||
|
//~| ERROR: non-ascii idents are not fully supported
|
||||||
|
(()氷);
|
||||||
|
//~^ ERROR: expected one of `)`, `,`, `.`, `?`, or an operator
|
||||||
|
//~| ERROR: cannot find value `氷` in this scope
|
||||||
|
//~| ERROR: non-ascii idents are not fully supported
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
error: expected one of `)`, `,`, `.`, `?`, or an operator, found `é`
|
||||||
|
--> $DIR/multibyte-char-use-seperator-issue-80134.rs:4:8
|
||||||
|
|
|
||||||
|
LL | (()é);
|
||||||
|
| ^
|
||||||
|
| |
|
||||||
|
| expected one of `)`, `,`, `.`, `?`, or an operator
|
||||||
|
| help: missing `,`
|
||||||
|
|
||||||
|
error: expected one of `)`, `,`, `.`, `?`, or an operator, found `氷`
|
||||||
|
--> $DIR/multibyte-char-use-seperator-issue-80134.rs:8:8
|
||||||
|
|
|
||||||
|
LL | (()氷);
|
||||||
|
| -^
|
||||||
|
| |
|
||||||
|
| expected one of `)`, `,`, `.`, `?`, or an operator
|
||||||
|
| help: missing `,`
|
||||||
|
|
||||||
|
error[E0425]: cannot find value `é` in this scope
|
||||||
|
--> $DIR/multibyte-char-use-seperator-issue-80134.rs:4:8
|
||||||
|
|
|
||||||
|
LL | (()é);
|
||||||
|
| ^ not found in this scope
|
||||||
|
|
||||||
|
error[E0425]: cannot find value `氷` in this scope
|
||||||
|
--> $DIR/multibyte-char-use-seperator-issue-80134.rs:8:8
|
||||||
|
|
|
||||||
|
LL | (()氷);
|
||||||
|
| ^^ not found in this scope
|
||||||
|
|
||||||
|
error[E0658]: non-ascii idents are not fully supported
|
||||||
|
--> $DIR/multibyte-char-use-seperator-issue-80134.rs:4:8
|
||||||
|
|
|
||||||
|
LL | (()é);
|
||||||
|
| ^
|
||||||
|
|
|
||||||
|
= note: see issue #55467 <https://github.com/rust-lang/rust/issues/55467> for more information
|
||||||
|
= help: add `#![feature(non_ascii_idents)]` to the crate attributes to enable
|
||||||
|
|
||||||
|
error[E0658]: non-ascii idents are not fully supported
|
||||||
|
--> $DIR/multibyte-char-use-seperator-issue-80134.rs:8:8
|
||||||
|
|
|
||||||
|
LL | (()氷);
|
||||||
|
| ^^
|
||||||
|
|
|
||||||
|
= note: see issue #55467 <https://github.com/rust-lang/rust/issues/55467> for more information
|
||||||
|
= help: add `#![feature(non_ascii_idents)]` to the crate attributes to enable
|
||||||
|
|
||||||
|
error: aborting due to 6 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0425, E0658.
|
||||||
|
For more information about an error, try `rustc --explain E0425`.
|
@ -1,13 +0,0 @@
|
|||||||
// run-rustfix
|
|
||||||
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
|
|
||||||
pub mod x {
|
|
||||||
pub struct A;
|
|
||||||
pub struct B;
|
|
||||||
}
|
|
||||||
|
|
||||||
// `.` is similar to `,` so list parsing should continue to closing `}`
|
|
||||||
use x::{A, B}; //~ ERROR expected one of `,`, `::`, `as`, or `}`, found `.`
|
|
||||||
|
|
||||||
fn main() {}
|
|
@ -1,5 +1,3 @@
|
|||||||
// run-rustfix
|
|
||||||
|
|
||||||
#![allow(unused_imports)]
|
#![allow(unused_imports)]
|
||||||
|
|
||||||
pub mod x {
|
pub mod x {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error: expected one of `,`, `::`, `as`, or `}`, found `.`
|
error: expected one of `,`, `::`, `as`, or `}`, found `.`
|
||||||
--> $DIR/similar-tokens.rs:11:10
|
--> $DIR/similar-tokens.rs:9:10
|
||||||
|
|
|
|
||||||
LL | use x::{A. B};
|
LL | use x::{A. B};
|
||||||
| ^
|
| ^
|
||||||
|
Loading…
Reference in New Issue
Block a user