Skip to content

Commit 6bc7c78

Browse files
committed
WIP
1 parent 9d3200c commit 6bc7c78

File tree

2 files changed

+21
-25
lines changed

2 files changed

+21
-25
lines changed

compiler/rustc_lint/src/early.rs

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,17 @@
77
use rustc_ast::ptr::P;
88
use rustc_ast::visit::{self as ast_visit, Visitor, walk_list};
99
use rustc_ast::{self as ast, HasAttrs};
10-
use rustc_data_structures::fx::FxHashSet;
1110
use rustc_data_structures::stack::ensure_sufficient_stack;
1211
use rustc_feature::Features;
13-
use rustc_hir::{HirId, ItemLocalId, OwnerId};
14-
use rustc_middle::hir;
15-
use rustc_middle::lint::LintLevelSource;
1612
use rustc_middle::ty::{RegisteredTools, TyCtxt};
1713
use rustc_session::lint::{BufferedEarlyLint, LintBuffer, LintPass};
1814
use rustc_session::{Session, lint};
19-
use rustc_span::def_id::CRATE_DEF_ID;
2015
use rustc_span::{Ident, Span};
2116
use tracing::debug;
2217

23-
use crate::builtin::UnsafeCode;
18+
use crate::BuiltinCombinedEarlyLintPassMustRun;
2419
use crate::context::{EarlyContext, LintContext, LintStore};
2520
use crate::passes::{EarlyLintPass, EarlyLintPassObject};
26-
use crate::{Level, LintId};
2721

2822
pub(super) mod diagnostics;
2923

@@ -345,25 +339,14 @@ pub fn check_ast_node<'a>(
345339
if passes.is_empty() {
346340
if let Some(tcx) = tcx {
347341
if sess.opts.lint_cap.is_some_and(|cap| cap == lint::Allow) {
348-
let lints_that_must_run = builtin_lints
349-
.get_lints()
350-
.into_iter()
351-
.filter(|lint| {
352-
let has_future_breakage = lint
353-
.future_incompatible
354-
.is_some_and(|fut| fut.reason.has_future_breakage());
355-
has_future_breakage || lint.eval_always
356-
})
357-
.collect::<Vec<_>>();
358-
eprintln!(
359-
"LINT: must_run: {}, total: {}",
360-
lints_that_must_run.len(),
361-
builtin_lints.get_lints().len()
342+
check_ast_node_inner(
343+
sess,
344+
Some(tcx),
345+
check_node,
346+
context,
347+
BuiltinCombinedEarlyLintPassMustRun::new(),
362348
);
363-
if !lints_that_must_run.is_empty() {
364-
check_ast_node_inner(sess, Some(tcx), check_node, context, UnsafeCode);
365-
return;
366-
}
349+
return;
367350
}
368351
}
369352
check_ast_node_inner(sess, tcx, check_node, context, builtin_lints);

compiler/rustc_lint/src/lib.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,19 @@ early_lint_methods!(
186186
]
187187
);
188188

189+
early_lint_methods!(
190+
declare_combined_early_lint_pass,
191+
[
192+
pub BuiltinCombinedEarlyLintPassMustRun,
193+
[
194+
UnsafeCode: UnsafeCode,
195+
AnonymousParameters: AnonymousParameters,
196+
EllipsisInclusiveRangePatterns: EllipsisInclusiveRangePatterns::default(),
197+
Expr2024: Expr2024,
198+
]
199+
]
200+
);
201+
189202
late_lint_methods!(
190203
declare_combined_late_lint_pass,
191204
[

0 commit comments

Comments
 (0)