// compile-flags: --error-format json // run-rustfix // The output for humans should just highlight the whole span without showing // the suggested replacement, but we also want to test that suggested // replacement only removes one set of parentheses, rather than naïvely // stripping away any starting or ending parenthesis characters—hence this // test of the JSON error format. #![deny(unused_parens)] #![allow(unreachable_code)] fn main() { let _b = false; if _b { //~ ERROR unnecessary parentheses println!("hello"); } f(); } fn f() -> bool { let c = false; if c { //~ ERROR unnecessary parentheses println!("next"); } if c { //~ ERROR unnecessary parentheses println!("prev"); } while false && true { if c { //~ ERROR unnecessary parentheses println!("norm"); } } while true && false { //~ ERROR unnecessary parentheses for _ in 0 .. 3 { //~ ERROR unnecessary parentheses println!("e~") } } for _ in 0 .. 3 { //~ ERROR unnecessary parentheses while true && false { //~ ERROR unnecessary parentheses println!("e~") } } loop { if (break { return true }) { } } false }