1
Fork 0

Add --check option to rustdoc

This commit is contained in:
Guillaume Gomez 2020-11-12 14:57:44 +01:00
parent f7801d6c7c
commit a51b13042e
2 changed files with 11 additions and 0 deletions

View file

@ -145,6 +145,9 @@ pub struct Options {
pub render_options: RenderOptions, pub render_options: RenderOptions,
/// Output format rendering (used only for "show-coverage" option for the moment) /// Output format rendering (used only for "show-coverage" option for the moment)
pub output_format: Option<OutputFormat>, pub output_format: Option<OutputFormat>,
/// If this option is set to `true`, rustdoc will only run checks and not generate
/// documentation.
pub run_check: bool,
} }
impl fmt::Debug for Options { impl fmt::Debug for Options {
@ -185,6 +188,7 @@ impl fmt::Debug for Options {
.field("runtool", &self.runtool) .field("runtool", &self.runtool)
.field("runtool_args", &self.runtool_args) .field("runtool_args", &self.runtool_args)
.field("enable-per-target-ignores", &self.enable_per_target_ignores) .field("enable-per-target-ignores", &self.enable_per_target_ignores)
.field("run_check", &self.run_check)
.finish() .finish()
} }
} }
@ -581,6 +585,7 @@ impl Options {
let enable_per_target_ignores = matches.opt_present("enable-per-target-ignores"); let enable_per_target_ignores = matches.opt_present("enable-per-target-ignores");
let document_private = matches.opt_present("document-private-items"); let document_private = matches.opt_present("document-private-items");
let document_hidden = matches.opt_present("document-hidden-items"); let document_hidden = matches.opt_present("document-hidden-items");
let run_check = matches.opt_present("check");
let (lint_opts, describe_lints, lint_cap) = get_cmd_lint_options(matches, error_format); let (lint_opts, describe_lints, lint_cap) = get_cmd_lint_options(matches, error_format);
@ -616,6 +621,7 @@ impl Options {
runtool_args, runtool_args,
enable_per_target_ignores, enable_per_target_ignores,
test_builder, test_builder,
run_check,
render_options: RenderOptions { render_options: RenderOptions {
output, output,
external_html, external_html,

View file

@ -423,6 +423,7 @@ fn opts() -> Vec<RustcOptGroup> {
"specified the rustc-like binary to use as the test builder", "specified the rustc-like binary to use as the test builder",
) )
}), }),
unstable("check", |o| o.optflag("", "check", "Run rustdoc checks")),
] ]
} }
@ -514,6 +515,7 @@ fn main_options(options: config::Options) -> MainResult {
// but we can't crates the Handler ahead of time because it's not Send // but we can't crates the Handler ahead of time because it's not Send
let diag_opts = (options.error_format, options.edition, options.debugging_opts.clone()); let diag_opts = (options.error_format, options.edition, options.debugging_opts.clone());
let show_coverage = options.show_coverage; let show_coverage = options.show_coverage;
let run_check = options.run_check;
// First, parse the crate and extract all relevant information. // First, parse the crate and extract all relevant information.
info!("starting to run rustc"); info!("starting to run rustc");
@ -539,6 +541,9 @@ fn main_options(options: config::Options) -> MainResult {
// if we ran coverage, bail early, we don't need to also generate docs at this point // if we ran coverage, bail early, we don't need to also generate docs at this point
// (also we didn't load in any of the useful passes) // (also we didn't load in any of the useful passes)
return Ok(()); return Ok(());
} else if run_check {
// Since we're in "check" mode, no need to generate anything beyond this point.
return Ok(());
} }
info!("going to format"); info!("going to format");