diff --git a/clippy_lints/src/empty_enum.rs b/clippy_lints/src/empty_enum.rs index b0389fd9a2f6..2a0dde656682 100644 --- a/clippy_lints/src/empty_enum.rs +++ b/clippy_lints/src/empty_enum.rs @@ -62,11 +62,10 @@ declare_lint_pass!(EmptyEnum => [EMPTY_ENUM]); impl LateLintPass<'_> for EmptyEnum { fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) { - if let ItemKind::Enum(..) = item.kind + if let ItemKind::Enum(.., def) = item.kind + && def.variants.is_empty() // Only suggest the `never_type` if the feature is enabled && cx.tcx.features().never_type() - && let Some(adt) = cx.tcx.type_of(item.owner_id).instantiate_identity().ty_adt_def() - && adt.variants().is_empty() { span_lint_and_help( cx, diff --git a/tests/ui/empty_enum.rs b/tests/ui/empty_enum.rs index 439fd0974f5f..ea5a00bb7843 100644 --- a/tests/ui/empty_enum.rs +++ b/tests/ui/empty_enum.rs @@ -1,7 +1,7 @@ -#![allow(dead_code)] #![warn(clippy::empty_enum)] // Enable never type to test empty enum lint #![feature(never_type)] + enum Empty {} //~^ empty_enum diff --git a/tests/ui/empty_enum_without_never_type.rs b/tests/ui/empty_enum_without_never_type.rs index 3661a1537208..cec53c555246 100644 --- a/tests/ui/empty_enum_without_never_type.rs +++ b/tests/ui/empty_enum_without_never_type.rs @@ -1,6 +1,5 @@ //@ check-pass -#![allow(dead_code)] #![warn(clippy::empty_enum)] // `never_type` is not enabled; this test has no stderr file