lisette_semantics/passes/
mod.rs1use diagnostics::LocalSink;
2use syntax::program::UnusedInfo;
3
4use crate::context::AnalysisContext;
5use crate::facts::Facts;
6
7pub(crate) mod checks;
8mod deferred;
9mod fact_producers;
10mod lints;
11
12pub use lints::Lint;
13
14pub(crate) const PARALLEL_THRESHOLD: usize = 4;
15
16pub fn run(
17 analysis: &AnalysisContext,
18 facts: &mut Facts,
19 sink: &LocalSink,
20 unused: &mut UnusedInfo,
21 run_lints: bool,
22) {
23 checks::run_all(analysis, facts, sink);
24 fact_producers::run_all(analysis, facts);
25 deferred::run(facts, sink);
26
27 if run_lints {
28 lints::from_facts::run(facts, unused, sink);
29 lints::ast_walk::run(analysis, sink);
30 lints::ref_graph::run(analysis, facts, unused, sink);
31 }
32}