diff options
| author | Jason Newcomb <jsnewcomb@pm.me> | 2024-06-13 02:27:52 -0400 |
|---|---|---|
| committer | Jason Newcomb <jsnewcomb@pm.me> | 2024-07-07 18:08:02 -0400 |
| commit | 2309f8e4a12021913809b8ed4b60ff41d9c586f0 (patch) | |
| tree | 992533c5f9497878ce213b13346b3dd5b773d1e6 | |
| parent | f46c981f3f93c59d9fd8c81aea9b03e9bce40997 (diff) | |
| download | rust-2309f8e4a12021913809b8ed4b60ff41d9c586f0.tar.gz rust-2309f8e4a12021913809b8ed4b60ff41d9c586f0.zip | |
`manual_non_exhaustive`: Delay msrv check.
| -rw-r--r-- | clippy_lints/src/manual_non_exhaustive.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/clippy_lints/src/manual_non_exhaustive.rs b/clippy_lints/src/manual_non_exhaustive.rs index d2ac0ad8363..73a505fd73f 100644 --- a/clippy_lints/src/manual_non_exhaustive.rs +++ b/clippy_lints/src/manual_non_exhaustive.rs @@ -97,19 +97,15 @@ impl_lint_pass!(ManualNonExhaustiveEnum => [MANUAL_NON_EXHAUSTIVE]); impl EarlyLintPass for ManualNonExhaustiveStruct { fn check_item(&mut self, cx: &EarlyContext<'_>, item: &ast::Item) { - if !self.msrv.meets(msrvs::NON_EXHAUSTIVE) { - return; - } - - if let ast::ItemKind::Struct(variant_data, _) = &item.kind { - let (fields, delimiter) = match variant_data { + if let ast::ItemKind::Struct(variant_data, _) = &item.kind + && let (fields, delimiter) = match variant_data { ast::VariantData::Struct { fields, .. } => (&**fields, '{'), ast::VariantData::Tuple(fields, _) => (&**fields, '('), ast::VariantData::Unit(_) => return, - }; - if fields.len() <= 1 { - return; } + && fields.len() > 1 + && self.msrv.meets(msrvs::NON_EXHAUSTIVE) + { let mut iter = fields.iter().filter_map(|f| match f.vis.kind { VisibilityKind::Public => None, VisibilityKind::Inherited => Some(Ok(f)), |
