// 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, (..));
}
