#![warn(clippy::empty_enum_variants_with_brackets)] #![allow(dead_code)] pub enum PublicTestEnum { NonEmptyBraces { x: i32, y: i32 }, // No error NonEmptyParentheses(i32, i32), // No error EmptyBraces {}, //~^ empty_enum_variants_with_brackets EmptyParentheses(), // No error as enum is pub } enum TestEnum { NonEmptyBraces { x: i32, y: i32 }, // No error NonEmptyParentheses(i32, i32), // No error EmptyBraces {}, //~^ empty_enum_variants_with_brackets EmptyParentheses(), //~^ empty_enum_variants_with_brackets AnotherEnum, // No error } mod issue12551 { enum EvenOdd { // Used as functions -> no error Even(), Odd(), // Not used as a function Unknown(), //~^ empty_enum_variants_with_brackets } fn even_odd(x: i32) -> EvenOdd { (x % 2 == 0).then(EvenOdd::Even).unwrap_or_else(EvenOdd::Odd) } fn natural_number(x: i32) -> NaturalOrNot { (x > 0) .then(NaturalOrNot::Natural) .unwrap_or_else(NaturalOrNot::NotNatural) } enum NaturalOrNot { // Used as functions -> no error Natural(), NotNatural(), // Not used as a function Unknown(), //~^ empty_enum_variants_with_brackets } enum RedundantParenthesesFunctionCall { // Used as a function call but with redundant parentheses Parentheses(), //~^ empty_enum_variants_with_brackets // Not used as a function NoParentheses, } #[allow(clippy::no_effect)] fn redundant_parentheses_function_call() { // The parentheses in the below line are redundant. RedundantParenthesesFunctionCall::Parentheses(); RedundantParenthesesFunctionCall::NoParentheses; } // Same test as above but with usage of the enum occurring before the definition. #[allow(clippy::no_effect)] fn redundant_parentheses_function_call_2() { // The parentheses in the below line are redundant. RedundantParenthesesFunctionCall2::Parentheses(); RedundantParenthesesFunctionCall2::NoParentheses; } enum RedundantParenthesesFunctionCall2 { // Used as a function call but with redundant parentheses Parentheses(), //~^ empty_enum_variants_with_brackets // Not used as a function NoParentheses, } } enum TestEnumWithFeatures { NonEmptyBraces { #[cfg(feature = "thisisneverenabled")] x: i32, }, // No error NonEmptyParentheses(#[cfg(feature = "thisisneverenabled")] i32), // No error } #[derive(Clone)] enum Foo { Variant1(i32), Variant2, Variant3(), //~ ERROR: enum variant has empty brackets } #[derive(Clone)] pub enum PubFoo { Variant1(i32), Variant2, Variant3(), } fn main() {}