mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			865 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			865 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
// 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, (..));
 | 
						|
}
 |