about summary refs log tree commit diff
diff options
context:
space:
mode:
authorchristopherdumas <christopherdumas@me.com>2015-09-02 15:48:21 -0700
committerchristopherdumas <christopherdumas@me.com>2015-09-14 07:26:11 -0700
commitafa905fcf59580ac76b3e3677b5d9c82b4a19169 (patch)
tree2aa4d1ca247924fab379a1387dcc8ae900de923a
parentb7b1dced3c0ab90144b4844498a3b678d690b20e (diff)
downloadrust-afa905fcf59580ac76b3e3677b5d9c82b4a19169.tar.gz
rust-afa905fcf59580ac76b3e3677b5d9c82b4a19169.zip
Fix tuple float bug.
-rw-r--r--src/libsyntax/parse/parser.rs2
-rw-r--r--src/test/parse-fail/tuple-float-index.rs16
2 files changed, 17 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 0772d124db8..265f435978c 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2363,7 +2363,7 @@ impl<'a> Parser<'a> {
                         self.fileline_help(last_span,
                             &format!("try parenthesizing the first index; e.g., `(foo.{}){}`",
                                     float.trunc() as usize,
-                                    &float.fract().to_string()[1..]));
+                                    format!(".{}", fstr.splitn(2, ".").last().unwrap())));
                     }
                     self.abort_if_errors();
 
diff --git a/src/test/parse-fail/tuple-float-index.rs b/src/test/parse-fail/tuple-float-index.rs
new file mode 100644
index 00000000000..f3f5e356346
--- /dev/null
+++ b/src/test/parse-fail/tuple-float-index.rs
@@ -0,0 +1,16 @@
+// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// compile-flags: -Z parse-only
+
+fn main () {
+    (1, (2, 3)).1.1; //~ ERROR unexpected token
+                     //~^ HELP try parenthesizing the first index; e.g., `(foo.1).1`
+}