diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:58 +0000 |
commit | a4b7ed7a42c716ab9f05e351f003d589124fd55d (patch) | |
tree | b620cd3f223850b28716e474e80c58059dca5dd4 /tests/ui/parser/ranges-precedence.rs | |
parent | Adding upstream version 1.67.1+dfsg1. (diff) | |
download | rustc-a4b7ed7a42c716ab9f05e351f003d589124fd55d.tar.xz rustc-a4b7ed7a42c716ab9f05e351f003d589124fd55d.zip |
Adding upstream version 1.68.2+dfsg1.upstream/1.68.2+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/parser/ranges-precedence.rs')
-rw-r--r-- | tests/ui/parser/ranges-precedence.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/ui/parser/ranges-precedence.rs b/tests/ui/parser/ranges-precedence.rs new file mode 100644 index 000000000..db241ed0c --- /dev/null +++ b/tests/ui/parser/ranges-precedence.rs @@ -0,0 +1,52 @@ +// run-pass +// Test that the precedence of ranges is correct + + + +struct Foo { + foo: usize, +} + +impl Foo { + fn bar(&self) -> usize { 5 } +} + +fn main() { + let x = 1+3..4+5; + assert_eq!(x, (4..9)); + + let x = 1..4+5; + assert_eq!(x, (1..9)); + + let x = 1+3..4; + assert_eq!(x, (4..4)); + + let a = Foo { foo: 3 }; + let x = a.foo..a.bar(); + assert_eq!(x, (3..5)); + + let x = 1+3..; + assert_eq!(x, (4..)); + let x = ..1+3; + assert_eq!(x, (..4)); + + let a = &[0, 1, 2, 3, 4, 5, 6]; + let x = &a[1+1..2+2]; + assert_eq!(x, &a[2..4]); + let x = &a[..1+2]; + assert_eq!(x, &a[..3]); + let x = &a[1+2..]; + assert_eq!(x, &a[3..]); + + for _i in 2+4..10-3 {} + + let i = 42; + for _ in 1..i {} + for _ in 1.. { break; } + + let x = [1]..[2]; + assert_eq!(x, (([1])..([2]))); + + let y = ..; + assert_eq!(y, (..)); +} |