mirror of https://github.com/rust-lang/rust
38 lines
1.0 KiB
Rust
38 lines
1.0 KiB
Rust
//! Runs several rustdoc lints, consolidating them into a single pass for
|
|
//! efficiency and simplicity.
|
|
|
|
mod bare_urls;
|
|
mod check_code_block_syntax;
|
|
mod html_tags;
|
|
mod redundant_explicit_links;
|
|
mod unescaped_backticks;
|
|
|
|
use super::Pass;
|
|
use crate::clean::*;
|
|
use crate::core::DocContext;
|
|
use crate::visit::DocVisitor;
|
|
|
|
pub(crate) const RUN_LINTS: Pass =
|
|
Pass { name: "run-lints", run: run_lints, description: "runs some of rustdoc's lints" };
|
|
|
|
struct Linter<'a, 'tcx> {
|
|
cx: &'a mut DocContext<'tcx>,
|
|
}
|
|
|
|
pub(crate) fn run_lints(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
|
|
Linter { cx }.visit_crate(&krate);
|
|
krate
|
|
}
|
|
|
|
impl<'a, 'tcx> DocVisitor for Linter<'a, 'tcx> {
|
|
fn visit_item(&mut self, item: &Item) {
|
|
bare_urls::visit_item(self.cx, item);
|
|
check_code_block_syntax::visit_item(self.cx, item);
|
|
html_tags::visit_item(self.cx, item);
|
|
unescaped_backticks::visit_item(self.cx, item);
|
|
redundant_explicit_links::visit_item(self.cx, item);
|
|
|
|
self.visit_item_recur(item)
|
|
}
|
|
}
|