rust-clippy/tests/ui/enum_variants.rs

225 lines
3.6 KiB
Rust
Raw Normal View History

#![warn(clippy::enum_variant_names)]
#![allow(non_camel_case_types, clippy::upper_case_acronyms)]
enum FakeCallType {
2018-12-09 22:26:16 +00:00
CALL,
CREATE,
}
enum FakeCallType2 {
2018-12-09 22:26:16 +00:00
CALL,
CREATELL,
}
enum Foo {
//~^ ERROR: all variants have the same prefix: `c`
2017-02-08 13:58:07 +00:00
cFoo,
//~^ ERROR: variant name ends with the enum's name
//~| NOTE: `-D clippy::enum-variant-names` implied by `-D warnings`
cBar,
cBaz,
}
enum Fooo {
cFoo, // no error, threshold is 3 variants by default
cBar,
}
2017-02-08 13:58:07 +00:00
enum Food {
//~^ ERROR: all variants have the same prefix: `Food`
2017-02-08 13:58:07 +00:00
FoodGood,
//~^ ERROR: variant name starts with the enum's name
2017-02-08 13:58:07 +00:00
FoodMiddle,
//~^ ERROR: variant name starts with the enum's name
2017-02-08 13:58:07 +00:00
FoodBad,
//~^ ERROR: variant name starts with the enum's name
}
enum Stuff {
StuffBad, // no error
}
2017-02-08 13:58:07 +00:00
enum BadCallType {
//~^ ERROR: all variants have the same prefix: `CallType`
CallTypeCall,
CallTypeCreate,
CallTypeDestroy,
}
2018-12-09 22:26:16 +00:00
enum TwoCallType {
// no error
CallTypeCall,
CallTypeCreate,
}
2017-02-08 13:58:07 +00:00
enum Consts {
//~^ ERROR: all variants have the same prefix: `Constant`
ConstantInt,
ConstantCake,
ConstantLie,
}
2018-12-09 22:26:16 +00:00
enum Two {
// no error here
ConstantInt,
ConstantInfer,
}
enum Something {
//~^ ERROR: all variants have the same prefix: `C`
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 {
//~^ ERROR: all variants have the same prefix: `WithOut`
WithOutCake,
WithOutTea,
WithOut,
}
2017-02-08 13:58:07 +00:00
enum NonCaps {
Prefix的,
PrefixTea,
PrefixCake,
}
2017-02-08 13:58:07 +00:00
pub enum PubSeall {
WithOutCake,
WithOutTea,
WithOut,
}
#[allow(clippy::enum_variant_names)]
pub mod allowed {
pub enum PubAllowed {
SomeThis,
SomeThat,
SomeOtherWhat,
}
}
// should not lint
enum Pat {
Foo,
Bar,
Path,
}
// should not lint
enum N {
Pos,
Neg,
Float,
}
// should not lint
enum Peek {
Peek1,
Peek2,
Peek3,
}
// should not lint
pub enum NetworkLayer {
Layer2,
Layer3,
}
// should lint suggesting `IData`, not only `Data` (see #4639)
enum IDataRequest {
//~^ ERROR: all variants have the same postfix: `IData`
PutIData(String),
GetIData(String),
DeleteUnpubIData(String),
}
enum HIDataRequest {
//~^ ERROR: all variants have the same postfix: `HIData`
PutHIData(String),
GetHIData(String),
DeleteUnpubHIData(String),
}
enum North {
Normal,
NoLeft,
NoRight,
}
// #8324
enum Phase {
PreLookup,
Lookup,
PostLookup,
}
mod issue9018 {
enum DoLint {
//~^ ERROR: all variants have the same prefix: `_Type`
_TypeCreate,
_TypeRead,
_TypeUpdate,
_TypeDestroy,
}
enum DoLintToo {
//~^ ERROR: all variants have the same postfix: `Type`
_CreateType,
_UpdateType,
_DeleteType,
}
enum DoNotLint {
_Foo,
_Bar,
_Baz,
}
}
mod allow_attributes_on_variants {
enum Enum {
#[allow(clippy::enum_variant_names)]
EnumStartsWith,
#[allow(clippy::enum_variant_names)]
EndsWithEnum,
Foo,
}
}
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,
}
}
fn main() {}