Lint against non-camelCase trait alias names

Type aliases are linted as such, so (unstable) trait aliases should be
treated the same way.
This commit is contained in:
Smitty 2021-05-26 19:55:27 -04:00
parent f6a28aa403
commit edef5bc31b
3 changed files with 19 additions and 0 deletions

View File

@ -176,6 +176,7 @@ impl EarlyLintPass for NonCamelCaseTypes {
| ast::ItemKind::Struct(..)
| ast::ItemKind::Union(..) => self.check_case(cx, "type", &it.ident),
ast::ItemKind::Trait(..) => self.check_case(cx, "trait", &it.ident),
ast::ItemKind::TraitAlias(..) => self.check_case(cx, "trait alias", &it.ident),
_ => (),
}
}

View File

@ -0,0 +1,8 @@
// check-pass
#![feature(trait_alias)]
trait Foo = std::fmt::Display + std::fmt::Debug;
trait bar = std::fmt::Display + std::fmt::Debug; //~WARN trait alias `bar` should have an upper camel case name
fn main() {}

View File

@ -0,0 +1,10 @@
warning: trait alias `bar` should have an upper camel case name
--> $DIR/style_lint.rs:6:7
|
LL | trait bar = std::fmt::Display + std::fmt::Debug;
| ^^^ help: convert the identifier to upper camel case: `Bar`
|
= note: `#[warn(non_camel_case_types)]` on by default
warning: 1 warning emitted