upper_case_acronyms: add ui and ui-toml tests for private/public enums

This commit is contained in:
Matthias Krüger 2021-03-27 00:52:49 +01:00
parent 4e19d406a9
commit ca7e95501c
5 changed files with 52 additions and 5 deletions

View file

@ -1,7 +1,6 @@
use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::diagnostics::span_lint_and_sugg;
use if_chain::if_chain;
use itertools::Itertools; use itertools::Itertools;
use rustc_ast::ast::{Item, ItemKind, Variant, VisibilityKind}; use rustc_ast::ast::{Item, ItemKind, VisibilityKind};
use rustc_errors::Applicability; use rustc_errors::Applicability;
use rustc_lint::{EarlyContext, EarlyLintPass, LintContext}; use rustc_lint::{EarlyContext, EarlyLintPass, LintContext};
use rustc_middle::lint::in_external_macro; use rustc_middle::lint::in_external_macro;
@ -109,7 +108,7 @@ impl EarlyLintPass for UpperCaseAcronyms {
} else if let ItemKind::Enum(ref enumdef, _) = it.kind { } else if let ItemKind::Enum(ref enumdef, _) = it.kind {
// check enum variants seperately because again we only want to lint on private enums and // check enum variants seperately because again we only want to lint on private enums and
// the fn check_variant does not know about the vis of the enum of its variants // the fn check_variant does not know about the vis of the enum of its variants
&enumdef enumdef
.variants .variants
.iter() .iter()
.for_each(|variant| check_ident(cx, &variant.ident, self.upper_case_acronyms_aggressive)); .for_each(|variant| check_ident(cx, &variant.ident, self.upper_case_acronyms_aggressive));

View file

@ -25,4 +25,20 @@ pub struct MIXEDCapital;
pub struct FULLCAPITAL; pub struct FULLCAPITAL;
// enum variants should not be linted if the num is pub
pub enum ParseError<T> {
FULLCAPITAL(u8),
MIXEDCapital(String),
Utf8(std::string::FromUtf8Error),
Parse(T, String),
}
// private, do lint here
enum ParseErrorPrivate<T> {
WASD(u8),
WASDMixed(String),
Utf8(std::string::FromUtf8Error),
Parse(T, String),
}
fn main() {} fn main() {}

View file

@ -66,5 +66,17 @@ error: name `GCCLLVMSomething` contains a capitalized acronym
LL | struct GCCLLVMSomething; LL | struct GCCLLVMSomething;
| ^^^^^^^^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `GccllvmSomething` | ^^^^^^^^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `GccllvmSomething`
error: aborting due to 11 previous errors error: name `WASD` contains a capitalized acronym
--> $DIR/upper_case_acronyms.rs:38:5
|
LL | WASD(u8),
| ^^^^ help: consider making the acronym lowercase, except the initial letter: `Wasd`
error: name `WASDMixed` contains a capitalized acronym
--> $DIR/upper_case_acronyms.rs:39:5
|
LL | WASDMixed(String),
| ^^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `WasdMixed`
error: aborting due to 13 previous errors

View file

@ -24,4 +24,18 @@ struct GCCLLVMSomething;
pub struct NOWARNINGHERE; pub struct NOWARNINGHERE;
pub struct ALSONoWarningHERE; pub struct ALSONoWarningHERE;
// enum variants should not be linted if the num is pub
pub enum ParseError<T> {
YDB(u8),
Utf8(std::string::FromUtf8Error),
Parse(T, String),
}
// private, do lint here
enum ParseErrorPrivate<T> {
WASD(u8),
Utf8(std::string::FromUtf8Error),
Parse(T, String),
}
fn main() {} fn main() {}

View file

@ -48,5 +48,11 @@ error: name `FIN` contains a capitalized acronym
LL | FIN, LL | FIN,
| ^^^ help: consider making the acronym lowercase, except the initial letter: `Fin` | ^^^ help: consider making the acronym lowercase, except the initial letter: `Fin`
error: aborting due to 8 previous errors error: name `WASD` contains a capitalized acronym
--> $DIR/upper_case_acronyms.rs:36:5
|
LL | WASD(u8),
| ^^^^ help: consider making the acronym lowercase, except the initial letter: `Wasd`
error: aborting due to 9 previous errors