about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoshua Nelson <jyn514@gmail.com>2020-06-20 16:41:39 -0400
committerJoshua Nelson <jyn514@gmail.com>2020-07-15 10:54:05 -0400
commitb3187aabd20637e0bb9a930b4b930a079b785ca9 (patch)
treeda4564707606eae117a9ebdc07aee492144e470e
parenta5275ff41521bb8e5a70f49f8ed420eaac7ed7de (diff)
downloadrust-b3187aabd20637e0bb9a930b4b930a079b785ca9.tar.gz
rust-b3187aabd20637e0bb9a930b4b930a079b785ca9.zip
Don't run analysis pass in rustdoc
- Explicitly check for missing docs
- Don't run any lints except those we explicitly specified
-rw-r--r--src/librustc_interface/passes.rs1
-rw-r--r--src/librustdoc/core.rs12
2 files changed, 7 insertions, 6 deletions
diff --git a/src/librustc_interface/passes.rs b/src/librustc_interface/passes.rs
index 1862b47b9ad..b814283555b 100644
--- a/src/librustc_interface/passes.rs
+++ b/src/librustc_interface/passes.rs
@@ -410,7 +410,6 @@ fn configure_and_expand_inner<'a>(
     // anything, so switch everything to just looping
     resolver.resolve_crate(&krate, sess.opts.actually_rustdoc);
 
-    //let mut should_loop = sess.opts.actually_rustdoc;
     let mut should_loop = false;
     if let Some(PpMode::PpmSource(PpSourceMode::PpmEveryBodyLoops)) = sess.opts.pretty {
         should_loop |= true;
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs
index a222920c7d2..061d2d21ec9 100644
--- a/src/librustdoc/core.rs
+++ b/src/librustdoc/core.rs
@@ -372,7 +372,10 @@ pub fn run_core(options: RustdocOptions) -> (clean::Crate, RenderInfo, RenderOpt
         crate_name,
         lint_caps,
         register_lints: None,
-        override_queries: None,
+        override_queries: Some(|_sess, local_providers, external_providers| {
+            local_providers.lint_mod = |_, _| {};
+            external_providers.lint_mod = |_, _| {};
+        }),
         registry: rustc_driver::diagnostics_registry(),
     };
 
@@ -416,10 +419,9 @@ pub fn run_core(options: RustdocOptions) -> (clean::Crate, RenderInfo, RenderOpt
             let mut global_ctxt = abort_on_err(queries.global_ctxt(), sess).take();
 
             global_ctxt.enter(|tcx| {
-                tcx.analysis(LOCAL_CRATE).ok();
-
-                // Abort if there were any errors so far
-                sess.abort_if_errors();
+                sess.time("missing_docs", || {
+                    rustc_lint::check_crate(tcx, rustc_lint::builtin::MissingDoc::new);
+                });
 
                 let access_levels = tcx.privacy_access_levels(LOCAL_CRATE);
                 // Convert from a HirId set to a DefId set since we don't always have easy access