1use foundry_compilers::Language;
2use foundry_config::DenyLevel;
3use solar::sema::Compiler;
4use std::path::PathBuf;
5
6pub use solar_lint::{
7 EarlyLintPass, EarlyLintVisitor, LateLintPass, LateLintVisitor, Lint, LintContext, LintPolicy,
8 ProjectLintContext as ProjectLintEmitter, ProjectLintPass, ProjectSource, Suggestion,
9 SuggestionKind,
10};
11
12pub trait Linter: Send + Sync {
14 type Language: Language;
16 type Lint: Lint;
18
19 fn lint(&self, input: &[PathBuf], deny: DenyLevel, compiler: &mut Compiler)
21 -> eyre::Result<()>;
22}