]> git.lizzy.rs Git - rust.git/commitdiff
Don't lint accidental "prefixes" on enum variants
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Tue, 10 Oct 2017 10:15:55 +0000 (12:15 +0200)
committerOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>
Tue, 10 Oct 2017 10:37:59 +0000 (12:37 +0200)
clippy_lints/src/enum_variants.rs
tests/ui/enum_variants.rs

index c4f7f39003e08a36c5bfe5bb737a496158f357c6..6dc6f122ebac8748deda2acdbe0ac96b951d5079 100644 (file)
@@ -159,7 +159,8 @@ fn check_variant(
     }
     for var in &def.variants {
         let name = var2str(var);
-        if partial_match(item_name, &name) == item_name_chars {
+        if partial_match(item_name, &name) == item_name_chars &&
+           name.chars().nth(item_name_chars).map_or(false, |c| !c.is_lowercase()) {
             span_lint(cx, lint, var.span, "Variant name starts with the enum's name");
         }
         if partial_rmatch(item_name, &name) == item_name_chars {
index 9901baf9e1285ed4278db88360e4eff37a01343a..3be01427134b91dac87c5804b4705b778cf1d03d 100644 (file)
@@ -102,4 +102,18 @@ pub enum PubAllowed {
     }
 }
 
+// should not lint
+enum Pat {
+    Foo,
+    Bar,
+    Path,
+}
+
+// should not lint
+enum N {
+    Pos,
+    Neg,
+    Float,
+}
+
 fn main() {}