about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2015-01-07 17:38:03 -0800
committerAlex Crichton <alex@alexcrichton.com>2015-01-07 17:38:03 -0800
commitd11bfba71bb71e05ab93e1576a07a48269b13021 (patch)
treec066874abec04d60a316410fbd147990de45b7dc /src/test
parent662132560133a17cb598083f44de2fbf3d74f157 (diff)
parent68a783a89f4c7e74d4c7e09bfac67283e054d4fc (diff)
downloadrust-d11bfba71bb71e05ab93e1576a07a48269b13021.tar.gz
rust-d11bfba71bb71e05ab93e1576a07a48269b13021.zip
rollup merge of #20720: nick29581/assoc-ice-missing
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/ranges-precedence.rs52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/test/run-pass/ranges-precedence.rs b/src/test/run-pass/ranges-precedence.rs
new file mode 100644
index 00000000000..f678eed8775
--- /dev/null
+++ b/src/test/run-pass/ranges-precedence.rs
@@ -0,0 +1,52 @@
+// Copyright 2015 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.
+
+// Test that the precedence of ranges is correct
+
+#![feature(slicing_syntax)]
+
+struct Foo {
+    foo: uint,
+}
+
+impl Foo {
+    fn bar(&self) -> uint { 5 }
+}
+
+fn main() {
+    let x = 1+3..4+5;
+    assert!(x == (4..9));
+
+    let x = 1..4+5;
+    assert!(x == (1..9));
+
+    let x = 1+3..4;
+    assert!(x == (4..4));
+
+    let a = Foo { foo: 3 };
+    let x = a.foo..a.bar();
+    assert!(x == (3..5));
+
+    let x = 1+3..;
+    assert!(x == (4..));
+    let x = ..1+3;
+    assert!(x == (..4));
+
+    let a = &[0i32, 1, 2, 3, 4, 5, 6];
+    let x = &a[1+1..2+2];
+    assert!(x == &a[2..4]);
+    let x = &a[..1+2];
+    assert!(x == &a[..3]);
+    let x = &a[1+2..];
+    assert!(x == &a[3..]);
+
+    for _i in 2+4..10-3 {}
+}
+