Skip to content

Commit

Permalink
Rollup merge of #105768 - fee1-dead-contrib:iat-style, r=eholk
Browse files Browse the repository at this point in the history
Detect inherent associated types not having CamelCase

Fixes #105341.
  • Loading branch information
matthiaskrgr authored Dec 16, 2022
2 parents a6c6a8d + 08a0e71 commit 81c1189
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
12 changes: 11 additions & 1 deletion compiler/rustc_lint/src/nonstandard_style.rs
Original file line number Diff line number Diff line change
Expand Up @@ -175,13 +175,23 @@ impl EarlyLintPass for NonCamelCaseTypes {
return;
}

match it.kind {
match &it.kind {
ast::ItemKind::TyAlias(..)
| ast::ItemKind::Enum(..)
| 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),

// N.B. This check is only for inherent associated types, so that we don't lint against
// trait impls where we should have warned for the trait definition already.
ast::ItemKind::Impl(box ast::Impl { of_trait: None, items, .. }) => {
for it in items {
if let ast::AssocItemKind::Type(..) = it.kind {
self.check_case(cx, "associated type", &it.ident);
}
}
}
_ => (),
}
}
Expand Down
12 changes: 12 additions & 0 deletions src/test/ui/associated-inherent-types/style.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#![feature(inherent_associated_types)]
#![allow(incomplete_features, dead_code)]
#![deny(non_camel_case_types)]

struct S;

impl S {
type typ = ();
//~^ ERROR associated type `typ` should have an upper camel case name
}

fn main() {}
14 changes: 14 additions & 0 deletions src/test/ui/associated-inherent-types/style.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
error: associated type `typ` should have an upper camel case name
--> $DIR/style.rs:8:10
|
LL | type typ = ();
| ^^^ help: convert the identifier to upper camel case: `Typ`
|
note: the lint level is defined here
--> $DIR/style.rs:3:9
|
LL | #![deny(non_camel_case_types)]
| ^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

0 comments on commit 81c1189

Please sign in to comment.