//@ run-rustfix

struct Foo {
    bar: Bar,
}

struct Bar {
    qux: i32,
}

pub fn post_regular() {
    let mut i = 0;
    i += 1; //~ ERROR Rust has no postfix increment operator
    println!("{}", i);
}

pub fn post_while() {
    let mut i = 0;
    while { let tmp = i; i += 1; tmp } < 5 {
        //~^ ERROR Rust has no postfix increment operator
        println!("{}", i);
    }
}

pub fn post_regular_tmp() {
    let mut tmp = 0;
    tmp += 1; //~ ERROR Rust has no postfix increment operator
    println!("{}", tmp);
}

pub fn post_while_tmp() {
    let mut tmp = 0;
    while { let tmp_ = tmp; tmp += 1; tmp_ } < 5 {
        //~^ ERROR Rust has no postfix increment operator
        println!("{}", tmp);
    }
}

pub fn post_field() {
    let mut foo = Foo { bar: Bar { qux: 0 } };
    foo.bar.qux += 1;
    //~^ ERROR Rust has no postfix increment operator
    println!("{}", foo.bar.qux);
}

pub fn post_field_tmp() {
    struct S {
        tmp: i32
    }
    let mut s = S { tmp: 0 };
    s.tmp += 1;
    //~^ ERROR Rust has no postfix increment operator
    println!("{}", s.tmp);
}

pub fn pre_field() {
    let mut foo = Foo { bar: Bar { qux: 0 } };
    foo.bar.qux += 1;
    //~^ ERROR Rust has no prefix increment operator
    println!("{}", foo.bar.qux);
}

fn main() {}
