Skip to content

Commit 0f7cef3

Browse files
committed
Don't lint accidental "prefixes" on enum variants
1 parent b62b1b6 commit 0f7cef3

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

clippy_lints/src/enum_variants.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,9 @@ fn check_variant(
160160
for var in &def.variants {
161161
let name = var2str(var);
162162
if partial_match(item_name, &name) == item_name_chars {
163-
span_lint(cx, lint, var.span, "Variant name starts with the enum's name");
163+
if name.chars().nth(item_name_chars).map_or(false, |c| !c.is_lowercase()) {
164+
span_lint(cx, lint, var.span, "Variant name starts with the enum's name");
165+
}
164166
}
165167
if partial_rmatch(item_name, &name) == item_name_chars {
166168
span_lint(cx, lint, var.span, "Variant name ends with the enum's name");

tests/ui/enum_variants.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,18 @@ mod allowed {
102102
}
103103
}
104104

105+
// should not lint
106+
enum Pat {
107+
Foo,
108+
Bar,
109+
Path,
110+
}
111+
112+
// should not lint
113+
enum N {
114+
Pos,
115+
Neg,
116+
Float,
117+
}
118+
105119
fn main() {}

0 commit comments

Comments
 (0)