2021-06-03 06:41:37 +00:00
|
|
|
#![warn(clippy::enum_variant_names)]
|
2021-01-30 17:06:34 +00:00
|
|
|
#![allow(non_camel_case_types, clippy::upper_case_acronyms)]
|
2016-02-15 15:59:56 +00:00
|
|
|
|
|
|
|
enum FakeCallType {
|
2018-12-09 22:26:16 +00:00
|
|
|
CALL,
|
|
|
|
CREATE,
|
2016-02-15 15:59:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
enum FakeCallType2 {
|
2018-12-09 22:26:16 +00:00
|
|
|
CALL,
|
|
|
|
CREATELL,
|
2016-02-15 15:59:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
enum Foo {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same prefix: `c`
|
2017-02-08 13:58:07 +00:00
|
|
|
cFoo,
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: variant name ends with the enum's name
|
|
|
|
//~| NOTE: `-D clippy::enum-variant-names` implied by `-D warnings`
|
2016-06-08 13:32:30 +00:00
|
|
|
cBar,
|
2016-08-06 18:59:27 +00:00
|
|
|
cBaz,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Fooo {
|
|
|
|
cFoo, // no error, threshold is 3 variants by default
|
|
|
|
cBar,
|
|
|
|
}
|
|
|
|
|
2017-02-08 13:58:07 +00:00
|
|
|
enum Food {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same prefix: `Food`
|
2017-02-08 13:58:07 +00:00
|
|
|
FoodGood,
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: variant name starts with the enum's name
|
2017-02-08 13:58:07 +00:00
|
|
|
FoodMiddle,
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: variant name starts with the enum's name
|
2017-02-08 13:58:07 +00:00
|
|
|
FoodBad,
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: variant name starts with the enum's name
|
2016-08-06 18:59:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
enum Stuff {
|
|
|
|
StuffBad, // no error
|
2016-02-15 15:59:56 +00:00
|
|
|
}
|
|
|
|
|
2017-02-08 13:58:07 +00:00
|
|
|
enum BadCallType {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same prefix: `CallType`
|
2016-02-15 15:59:56 +00:00
|
|
|
CallTypeCall,
|
|
|
|
CallTypeCreate,
|
|
|
|
CallTypeDestroy,
|
|
|
|
}
|
|
|
|
|
2018-12-09 22:26:16 +00:00
|
|
|
enum TwoCallType {
|
|
|
|
// no error
|
2016-02-15 15:59:56 +00:00
|
|
|
CallTypeCall,
|
|
|
|
CallTypeCreate,
|
|
|
|
}
|
|
|
|
|
2017-02-08 13:58:07 +00:00
|
|
|
enum Consts {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same prefix: `Constant`
|
2016-02-15 15:59:56 +00:00
|
|
|
ConstantInt,
|
|
|
|
ConstantCake,
|
|
|
|
ConstantLie,
|
|
|
|
}
|
|
|
|
|
2018-12-09 22:26:16 +00:00
|
|
|
enum Two {
|
|
|
|
// no error here
|
2016-02-15 15:59:56 +00:00
|
|
|
ConstantInt,
|
|
|
|
ConstantInfer,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Something {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same prefix: `C`
|
2016-02-15 15:59:56 +00:00
|
|
|
CCall,
|
|
|
|
CCreate,
|
|
|
|
CCryogenize,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Seal {
|
|
|
|
With,
|
|
|
|
Without,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Seall {
|
|
|
|
With,
|
|
|
|
WithOut,
|
|
|
|
Withbroken,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Sealll {
|
|
|
|
With,
|
|
|
|
WithOut,
|
|
|
|
}
|
|
|
|
|
2017-02-08 13:58:07 +00:00
|
|
|
enum Seallll {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same prefix: `WithOut`
|
2016-02-15 15:59:56 +00:00
|
|
|
WithOutCake,
|
2016-08-06 18:59:27 +00:00
|
|
|
WithOutTea,
|
2016-02-15 15:59:56 +00:00
|
|
|
WithOut,
|
|
|
|
}
|
|
|
|
|
2017-02-08 13:58:07 +00:00
|
|
|
enum NonCaps {
|
2016-02-15 15:59:56 +00:00
|
|
|
Prefix的,
|
2016-08-06 18:59:27 +00:00
|
|
|
PrefixTea,
|
2016-02-15 15:59:56 +00:00
|
|
|
PrefixCake,
|
|
|
|
}
|
|
|
|
|
2017-02-08 13:58:07 +00:00
|
|
|
pub enum PubSeall {
|
2016-12-21 12:30:57 +00:00
|
|
|
WithOutCake,
|
|
|
|
WithOutTea,
|
|
|
|
WithOut,
|
|
|
|
}
|
|
|
|
|
2021-06-03 06:41:37 +00:00
|
|
|
#[allow(clippy::enum_variant_names)]
|
|
|
|
pub mod allowed {
|
2016-12-21 12:30:57 +00:00
|
|
|
pub enum PubAllowed {
|
|
|
|
SomeThis,
|
|
|
|
SomeThat,
|
|
|
|
SomeOtherWhat,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-10-10 10:15:55 +00:00
|
|
|
// should not lint
|
|
|
|
enum Pat {
|
|
|
|
Foo,
|
|
|
|
Bar,
|
|
|
|
Path,
|
|
|
|
}
|
|
|
|
|
|
|
|
// should not lint
|
|
|
|
enum N {
|
|
|
|
Pos,
|
|
|
|
Neg,
|
|
|
|
Float,
|
|
|
|
}
|
|
|
|
|
2019-08-06 18:45:36 +00:00
|
|
|
// should not lint
|
|
|
|
enum Peek {
|
|
|
|
Peek1,
|
|
|
|
Peek2,
|
|
|
|
Peek3,
|
|
|
|
}
|
|
|
|
|
|
|
|
// should not lint
|
|
|
|
pub enum NetworkLayer {
|
|
|
|
Layer2,
|
|
|
|
Layer3,
|
|
|
|
}
|
|
|
|
|
2021-02-25 10:25:22 +00:00
|
|
|
// should lint suggesting `IData`, not only `Data` (see #4639)
|
|
|
|
enum IDataRequest {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same postfix: `IData`
|
2021-02-25 10:25:22 +00:00
|
|
|
PutIData(String),
|
|
|
|
GetIData(String),
|
|
|
|
DeleteUnpubIData(String),
|
|
|
|
}
|
|
|
|
|
|
|
|
enum HIDataRequest {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same postfix: `HIData`
|
2021-02-25 10:25:22 +00:00
|
|
|
PutHIData(String),
|
|
|
|
GetHIData(String),
|
|
|
|
DeleteUnpubHIData(String),
|
|
|
|
}
|
|
|
|
|
2021-12-30 14:10:43 +00:00
|
|
|
enum North {
|
|
|
|
Normal,
|
|
|
|
NoLeft,
|
|
|
|
NoRight,
|
|
|
|
}
|
|
|
|
|
2022-01-27 14:12:45 +00:00
|
|
|
// #8324
|
|
|
|
enum Phase {
|
|
|
|
PreLookup,
|
|
|
|
Lookup,
|
|
|
|
PostLookup,
|
|
|
|
}
|
|
|
|
|
2022-06-30 08:50:09 +00:00
|
|
|
mod issue9018 {
|
|
|
|
enum DoLint {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same prefix: `_Type`
|
2022-06-30 08:50:09 +00:00
|
|
|
_TypeCreate,
|
|
|
|
_TypeRead,
|
|
|
|
_TypeUpdate,
|
|
|
|
_TypeDestroy,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum DoLintToo {
|
2023-08-24 19:32:12 +00:00
|
|
|
//~^ ERROR: all variants have the same postfix: `Type`
|
2022-06-30 08:50:09 +00:00
|
|
|
_CreateType,
|
|
|
|
_UpdateType,
|
|
|
|
_DeleteType,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum DoNotLint {
|
|
|
|
_Foo,
|
|
|
|
_Bar,
|
|
|
|
_Baz,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-23 11:03:09 +00:00
|
|
|
mod allow_attributes_on_variants {
|
|
|
|
enum Enum {
|
|
|
|
#[allow(clippy::enum_variant_names)]
|
|
|
|
EnumStartsWith,
|
|
|
|
#[allow(clippy::enum_variant_names)]
|
|
|
|
EndsWithEnum,
|
|
|
|
Foo,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-11-02 16:35:56 +00:00
|
|
|
mod issue11494 {
|
|
|
|
// variant order should not affect lint
|
|
|
|
enum Data {
|
|
|
|
Valid,
|
|
|
|
Invalid,
|
|
|
|
DataDependent,
|
|
|
|
//~^ ERROR: variant name starts with the enum's name
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Datas {
|
|
|
|
DatasDependent,
|
|
|
|
//~^ ERROR: variant name starts with the enum's name
|
|
|
|
Valid,
|
|
|
|
Invalid,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-02-15 15:59:56 +00:00
|
|
|
fn main() {}
|