Rollup merge of #41087 - estebank:tuple-float-index, r=arielb1
Use proper span for tuple index parsed as float Fix diagnostic suggestion from: ```rust help: try parenthesizing the first index | (1, (2, 3)).((1, (2, 3)).1).1; ``` to the correct: ```rust help: try parenthesizing the first index | ((1, (2, 3)).1).1; ``` Fix #41081.
This commit is contained in:
commit
918e35a9bd
3 changed files with 15 additions and 6 deletions
|
@ -2552,10 +2552,10 @@ impl<'a> Parser<'a> {
|
||||||
}
|
}
|
||||||
token::Literal(token::Float(n), _suf) => {
|
token::Literal(token::Float(n), _suf) => {
|
||||||
self.bump();
|
self.bump();
|
||||||
let prev_span = self.prev_span;
|
|
||||||
let fstr = n.as_str();
|
let fstr = n.as_str();
|
||||||
let mut err = self.diagnostic().struct_span_err(prev_span,
|
let mut err = self.diagnostic().struct_span_err(self.prev_span,
|
||||||
&format!("unexpected token: `{}`", n));
|
&format!("unexpected token: `{}`", n));
|
||||||
|
err.span_label(self.prev_span, &"unexpected token");
|
||||||
if fstr.chars().all(|x| "0123456789.".contains(x)) {
|
if fstr.chars().all(|x| "0123456789.".contains(x)) {
|
||||||
let float = match fstr.parse::<f64>().ok() {
|
let float = match fstr.parse::<f64>().ok() {
|
||||||
Some(f) => f,
|
Some(f) => f,
|
||||||
|
@ -2573,7 +2573,7 @@ impl<'a> Parser<'a> {
|
||||||
word(&mut s.s, fstr.splitn(2, ".").last().unwrap())
|
word(&mut s.s, fstr.splitn(2, ".").last().unwrap())
|
||||||
});
|
});
|
||||||
err.span_suggestion(
|
err.span_suggestion(
|
||||||
prev_span,
|
lo.to(self.prev_span),
|
||||||
"try parenthesizing the first index",
|
"try parenthesizing the first index",
|
||||||
sugg);
|
sugg);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,5 @@
|
||||||
// compile-flags: -Z parse-only
|
// compile-flags: -Z parse-only
|
||||||
|
|
||||||
fn main () {
|
fn main () {
|
||||||
(1, (2, 3)).1.1; //~ ERROR unexpected token
|
(1, (2, 3)).1.1;
|
||||||
//~^ HELP try parenthesizing the first index
|
|
||||||
//~| SUGGESTION ((1, (2, 3)).1).1
|
|
||||||
}
|
}
|
11
src/test/ui/suggestions/tuple-float-index.stderr
Normal file
11
src/test/ui/suggestions/tuple-float-index.stderr
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
error: unexpected token: `1.1`
|
||||||
|
--> $DIR/tuple-float-index.rs:14:17
|
||||||
|
|
|
||||||
|
14 | (1, (2, 3)).1.1;
|
||||||
|
| ^^^ unexpected token
|
||||||
|
|
|
||||||
|
help: try parenthesizing the first index
|
||||||
|
| ((1, (2, 3)).1).1;
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue