@@ -9,7 +9,7 @@ use rustc_errors::{
99use rustc_hir:: { self as hir, HirIdSet } ;
1010use rustc_macros:: LintDiagnostic ;
1111use rustc_middle:: ty:: TyCtxt ;
12- use rustc_session:: lint:: { FutureIncompatibilityReason , Level } ;
12+ use rustc_session:: lint:: { FutureIncompatibilityReason , LintId } ;
1313use rustc_session:: { declare_lint, impl_lint_pass} ;
1414use rustc_span:: Span ;
1515use rustc_span:: edition:: Edition ;
@@ -242,12 +242,12 @@ impl_lint_pass!(
242242
243243impl < ' tcx > LateLintPass < ' tcx > for IfLetRescope {
244244 fn check_expr ( & mut self , cx : & LateContext < ' tcx > , expr : & ' tcx hir:: Expr < ' tcx > ) {
245- if expr. span . edition ( ) . at_least_rust_2024 ( ) {
246- return ;
247- }
248- if let ( Level :: Allow , _) = cx. tcx . lint_level_at_node ( IF_LET_RESCOPE , expr. hir_id ) {
245+ if expr. span . edition ( ) . at_least_rust_2024 ( )
246+ || cx. tcx . lints_that_dont_need_to_run ( ( ) ) . contains ( & LintId :: of ( IF_LET_RESCOPE ) )
247+ {
249248 return ;
250249 }
250+
251251 if let hir:: ExprKind :: Loop ( block, _label, hir:: LoopSource :: While , _span) = expr. kind
252252 && let Some ( value) = block. expr
253253 && let hir:: ExprKind :: If ( cond, _conseq, _alt) = value. kind
@@ -287,7 +287,6 @@ struct IfLetRescopeLint {
287287 rewrite : Option < IfLetRescopeRewrite > ,
288288}
289289
290- // #[derive(Subdiagnostic)]
291290struct IfLetRescopeRewrite {
292291 match_heads : Vec < SingleArmMatchBegin > ,
293292 consequent_heads : Vec < ConsequentRewrite > ,
0 commit comments