//@ check-pass
//@ edition: 2018
//@ run-rustfix

#![feature(try_blocks)]
#![warn(unused_parens, unused_braces)]

fn consume<T>(_: Result<T, T>) -> T { todo!() }

fn main() {
    consume(try {});
    //~^ WARN unnecessary parentheses

    consume(try {});
    //~^ WARN unnecessary braces

    match try {} {
        //~^ WARN unnecessary parentheses
        Ok(()) | Err(()) => (),
    }

    if let Err(()) = try {} {}
    //~^ WARN unnecessary parentheses

    match try {} {
        //~^ WARN unnecessary parentheses
        Ok(()) | Err(()) => (),
    }
}
