1
Fork 0

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:
Tim Neumann 2017-04-12 14:45:41 +02:00 committed by GitHub
commit 918e35a9bd
3 changed files with 15 additions and 6 deletions

View file

@ -2552,10 +2552,10 @@ impl<'a> Parser<'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,
@ -2573,7 +2573,7 @@ impl<'a> Parser<'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);
}