Rollup merge of - 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 .
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
src

@ -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);
}

@ -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