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:
Esteban Küber
2017-04-05 09:50:04 -07:00
parent 5309a3e31d
commit 44e414c477
3 changed files with 15 additions and 6 deletions

View File

@@ -2498,10 +2498,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,
@@ -2519,7 +2519,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);
}