about summary refs log tree commit diff
diff options
context:
space:
mode:
authorrzvxa <rzvxa@protonmail.com>2024-08-09 12:18:56 +0330
committerrzvxa <rzvxa@protonmail.com>2024-08-09 12:18:56 +0330
commitd85cf0bacd8ea565557317940d878a535189a6d9 (patch)
tree01c9e3d783aba2b95079d05a2aa9096beca9e991
parent5364cbea80f0e9b251151f40aa67592b0827759e (diff)
downloadrust-d85cf0bacd8ea565557317940d878a535189a6d9.tar.gz
rust-d85cf0bacd8ea565557317940d878a535189a6d9.zip
use `fulfill_or_allowed` over `is_lint_allowed`.
-rw-r--r--clippy_lints/src/inconsistent_struct_constructor.rs23
1 files changed, 12 insertions, 11 deletions
diff --git a/clippy_lints/src/inconsistent_struct_constructor.rs b/clippy_lints/src/inconsistent_struct_constructor.rs
index da289225509..d386bfca6ba 100644
--- a/clippy_lints/src/inconsistent_struct_constructor.rs
+++ b/clippy_lints/src/inconsistent_struct_constructor.rs
@@ -1,5 +1,5 @@
 use clippy_utils::diagnostics::span_lint_and_sugg;
-use clippy_utils::is_lint_allowed;
+use clippy_utils::fulfill_or_allowed;
 use clippy_utils::source::snippet;
 use rustc_data_structures::fx::FxHashMap;
 use rustc_errors::Applicability;
@@ -74,7 +74,6 @@ impl<'tcx> LateLintPass<'tcx> for InconsistentStructConstructor {
             && adt_def.is_struct()
             && let Some(local_def_id) = adt_def.did().as_local()
             && let ty_hir_id = cx.tcx.local_def_id_to_hir_id(local_def_id)
-            && !is_lint_allowed(cx, INCONSISTENT_STRUCT_CONSTRUCTOR, ty_hir_id)
             && let Some(variant) = adt_def.variants().iter().next()
         {
             let mut def_order_map = FxHashMap::default();
@@ -107,15 +106,17 @@ impl<'tcx> LateLintPass<'tcx> for InconsistentStructConstructor {
                 snippet(cx, qpath.span(), ".."),
             );
 
-            span_lint_and_sugg(
-                cx,
-                INCONSISTENT_STRUCT_CONSTRUCTOR,
-                expr.span,
-                "struct constructor field order is inconsistent with struct definition field order",
-                "try",
-                sugg,
-                Applicability::MachineApplicable,
-            );
+            if !fulfill_or_allowed(cx, INCONSISTENT_STRUCT_CONSTRUCTOR, Some(ty_hir_id)) {
+                span_lint_and_sugg(
+                    cx,
+                    INCONSISTENT_STRUCT_CONSTRUCTOR,
+                    expr.span,
+                    "struct constructor field order is inconsistent with struct definition field order",
+                    "try",
+                    sugg,
+                    Applicability::MachineApplicable,
+                );
+            }
         }
     }
 }