about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-10-03 10:30:16 +0000
committerbors <bors@rust-lang.org>2021-10-03 10:30:16 +0000
commit63b04f7d7f3ab6c34ecc1c732a6c61bf100f0ab3 (patch)
tree6ee1015078c4f8dacf133a5554a981654d7053a4
parent33c34fb2d76aeff15ccafedc8b3ebb17bebbc782 (diff)
parent0ebc656a9add6a08dac7d8be3e7f1983998bef34 (diff)
downloadrust-63b04f7d7f3ab6c34ecc1c732a6c61bf100f0ab3.tar.gz
rust-63b04f7d7f3ab6c34ecc1c732a6c61bf100f0ab3.zip
Auto merge of #7755 - HKalbasi:master, r=xFrednet
exclude enum from derivable impls

fix #7753

changelog: Exclude enum from ``[`derivable_impls`]``
-rw-r--r--clippy_lints/src/derivable_impls.rs1
-rw-r--r--tests/ui/derivable_impls.rs13
2 files changed, 14 insertions, 0 deletions
diff --git a/clippy_lints/src/derivable_impls.rs b/clippy_lints/src/derivable_impls.rs
index 15252ef96cd..fdef0abe970 100644
--- a/clippy_lints/src/derivable_impls.rs
+++ b/clippy_lints/src/derivable_impls.rs
@@ -83,6 +83,7 @@ impl<'tcx> LateLintPass<'tcx> for DerivableImpls {
             if !attrs.iter().any(|attr| attr.doc_str().is_some());
             if let child_attrs = cx.tcx.hir().attrs(impl_item_hir);
             if !child_attrs.iter().any(|attr| attr.doc_str().is_some());
+            if adt_def.is_struct();
             then {
                 if let TyKind::Path(QPath::Resolved(_, p)) = self_ty.kind {
                     if let Some(PathSegment { args: Some(a), .. }) = p.segments.last() {
diff --git a/tests/ui/derivable_impls.rs b/tests/ui/derivable_impls.rs
index 3eeebc117f3..a6412004726 100644
--- a/tests/ui/derivable_impls.rs
+++ b/tests/ui/derivable_impls.rs
@@ -227,4 +227,17 @@ impl Default for RepeatDefault2 {
     }
 }
 
+// https://github.com/rust-lang/rust-clippy/issues/7753
+
+pub enum IntOrString {
+    Int(i32),
+    String(String),
+}
+
+impl Default for IntOrString {
+    fn default() -> Self {
+        IntOrString::Int(0)
+    }
+}
+
 fn main() {}