From 90b3e2c1c8117965a6f7175987409b2ab4de8453 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 11 Jul 2018 00:36:31 +0200 Subject: [PATCH] Improve lint handling in rustdoc --- src/librustdoc/core.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 417a78b2a3a..0a56c639220 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -193,6 +193,17 @@ pub fn run_core(search_paths: SearchPaths, let intra_link_resolution_failure_name = lint::builtin::INTRA_DOC_LINK_RESOLUTION_FAILURE.name; let warnings_lint_name = lint::builtin::WARNINGS.name; let missing_docs = rustc_lint::builtin::MISSING_DOCS.name; + + // In addition to those specific lints, we also need to whitelist those given through + // command line, otherwise they'll get ignored and we don't want that. + let mut whitelisted_lints = vec![warnings_lint_name.to_owned(), + intra_link_resolution_failure_name.to_owned(), + missing_docs.to_owned()]; + + for (lint, _) in &cmd_lints { + whitelisted_lints.push(lint.clone()); + } + let lints = lint::builtin::HardwiredLints.get_lints() .into_iter() .chain(rustc_lint::SoftLints.get_lints().into_iter()) @@ -248,9 +259,7 @@ pub fn run_core(search_paths: SearchPaths, .filter_map(|lint| { // We don't want to whitelist *all* lints so let's // ignore those ones. - if lint.name == warnings_lint_name || - lint.name == intra_link_resolution_failure_name || - lint.name == missing_docs { + if whitelisted_lints.iter().any(|l| &lint.name == l) { None } else { Some(lint) -- 2.44.0