]> git.lizzy.rs Git - rust.git/blob - src/librustdoc/passes/lint.rs
Rollup merge of #104864 - chenyukang:yukang/fix-104700-binding, r=estebank
[rust.git] / src / librustdoc / passes / lint.rs
1 //! Runs several rustdoc lints, consolidating them into a single pass for
2 //! efficiency and simplicity.
3
4 mod bare_urls;
5 mod check_code_block_syntax;
6 mod html_tags;
7
8 use super::Pass;
9 use crate::clean::*;
10 use crate::core::DocContext;
11 use crate::visit::DocVisitor;
12
13 pub(crate) const RUN_LINTS: Pass =
14     Pass { name: "run-lints", run: run_lints, description: "runs some of rustdoc's lints" };
15
16 struct Linter<'a, 'tcx> {
17     cx: &'a mut DocContext<'tcx>,
18 }
19
20 pub(crate) fn run_lints(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
21     Linter { cx }.visit_crate(&krate);
22     krate
23 }
24
25 impl<'a, 'tcx> DocVisitor for Linter<'a, 'tcx> {
26     fn visit_item(&mut self, item: &Item) {
27         bare_urls::visit_item(self.cx, item);
28         check_code_block_syntax::visit_item(self.cx, item);
29         html_tags::visit_item(self.cx, item);
30
31         self.visit_item_recur(item)
32     }
33 }