mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-28 20:16:58 +03:00
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; ```
This commit is contained in:
@@ -2498,10 +2498,10 @@ fn parse_dot_or_call_expr_with_(&mut self, e0: P<Expr>, lo: Span) -> PResult<'a,
|
||||
}
|
||||
token::Literal(token::Float(n), _suf) => {
|
||||
self.bump();
|
||||
let prev_span = self.prev_span;
|
||||
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));
|
||||
err.span_label(self.prev_span, &"unexpected token");
|
||||
if fstr.chars().all(|x| "0123456789.".contains(x)) {
|
||||
let float = match fstr.parse::<f64>().ok() {
|
||||
Some(f) => f,
|
||||
@@ -2519,7 +2519,7 @@ fn parse_dot_or_call_expr_with_(&mut self, e0: P<Expr>, lo: Span) -> PResult<'a,
|
||||
word(&mut s.s, fstr.splitn(2, ".").last().unwrap())
|
||||
});
|
||||
err.span_suggestion(
|
||||
prev_span,
|
||||
lo.to(self.prev_span),
|
||||
"try parenthesizing the first index",
|
||||
sugg);
|
||||
}
|
||||
|
||||
+1
-3
@@ -11,7 +11,5 @@
|
||||
// compile-flags: -Z parse-only
|
||||
|
||||
fn main () {
|
||||
(1, (2, 3)).1.1; //~ ERROR unexpected token
|
||||
//~^ HELP try parenthesizing the first index
|
||||
//~| SUGGESTION ((1, (2, 3)).1).1
|
||||
(1, (2, 3)).1.1;
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user