//@ 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, unused_braces)] fn main() { let _b = false; if _b { //~^ ERROR unnecessary parentheses around `if` condition println!("hello"); } f(); } fn f() -> bool { let c = false; if c { //~^ ERROR unnecessary parentheses around `if` condition println!("next"); } if c { //~^ ERROR unnecessary parentheses around `if` condition println!("prev"); } while false && true { //~^ ERROR unnecessary parentheses around `while` condition if c { //~^ ERROR unnecessary parentheses around `if` condition println!("norm"); } } while true && false { //~^ ERROR unnecessary parentheses around `while` condition for _ in 0 .. 3 { //~^ ERROR unnecessary parentheses around `for` iterator expression println!("e~") } } for _ in 0 .. 3 { //~^ ERROR unnecessary parentheses around `for` iterator expression while true && false { //~^ ERROR unnecessary parentheses around `while` condition println!("e~") } } loop { if (break { return true }) { } } false }