Skip to content

Commit

Permalink
Rollup merge of rust-lang#54205 - GuillaumeGomez:treat-err-as-bug, r=…
Browse files Browse the repository at this point in the history
…QuietMisdreavus

Add treat-err-as-bug flag in rustdoc

cc @nikomatsakis
r? @QuietMisdreavus
  • Loading branch information
GuillaumeGomez authored Sep 18, 2018
2 parents 6aed133 + 818938f commit 108be3c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
19 changes: 11 additions & 8 deletions src/librustdoc/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -260,9 +260,10 @@ impl DocAccessLevels for AccessLevels<DefId> {
///
/// If the given `error_format` is `ErrorOutputType::Json` and no `SourceMap` is given, a new one
/// will be created for the handler.
pub fn new_handler(error_format: ErrorOutputType, source_map: Option<Lrc<source_map::SourceMap>>)
-> errors::Handler
{
pub fn new_handler(error_format: ErrorOutputType,
source_map: Option<Lrc<source_map::SourceMap>>,
treat_err_as_bug: bool,
) -> errors::Handler {
// rustdoc doesn't override (or allow to override) anything from this that is relevant here, so
// stick to the defaults
let sessopts = Options::default();
Expand Down Expand Up @@ -299,7 +300,7 @@ pub fn new_handler(error_format: ErrorOutputType, source_map: Option<Lrc<source_
emitter,
errors::HandlerFlags {
can_emit_warnings: true,
treat_err_as_bug: false,
treat_err_as_bug,
report_delayed_bugs: false,
external_macro_backtrace: false,
..Default::default()
Expand All @@ -323,9 +324,9 @@ pub fn run_core(search_paths: SearchPaths,
lint_cap: Option<lint::Level>,
describe_lints: bool,
mut manual_passes: Vec<String>,
mut default_passes: passes::DefaultPassOption)
-> (clean::Crate, RenderInfo, Vec<String>)
{
mut default_passes: passes::DefaultPassOption,
treat_err_as_bug: bool,
) -> (clean::Crate, RenderInfo, Vec<String>) {
// Parse, resolve, and typecheck the given crate.

let cpath = match input {
Expand Down Expand Up @@ -388,7 +389,9 @@ pub fn run_core(search_paths: SearchPaths,
};
driver::spawn_thread_pool(sessopts, move |sessopts| {
let source_map = Lrc::new(source_map::SourceMap::new(sessopts.file_path_mapping()));
let diagnostic_handler = new_handler(error_format, Some(source_map.clone()));
let diagnostic_handler = new_handler(error_format,
Some(source_map.clone()),
treat_err_as_bug);

let mut sess = session::build_session_(
sessopts, cpath, diagnostic_handler, source_map,
Expand Down
13 changes: 10 additions & 3 deletions src/librustdoc/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -404,8 +404,11 @@ fn main_args(args: &[String]) -> isize {
`short` (instead was `{}`)", arg));
}
};
let treat_err_as_bug = matches.opt_strs("Z").iter().any(|x| {
*x == "treat-err-as-bug"
});

let diag = core::new_handler(error_format, None);
let diag = core::new_handler(error_format, None, treat_err_as_bug);

// check for deprecated options
check_deprecated_options(&matches, &diag);
Expand Down Expand Up @@ -560,7 +563,7 @@ fn main_args(args: &[String]) -> isize {
let res = acquire_input(PathBuf::from(input), externs, edition, cg, &matches, error_format,
move |out| {
let Output { krate, passes, renderinfo } = out;
let diag = core::new_handler(error_format, None);
let diag = core::new_handler(error_format, None, treat_err_as_bug);
info!("going to format");
match output_format.as_ref().map(|s| &**s) {
Some("html") | None => {
Expand Down Expand Up @@ -694,6 +697,9 @@ where R: 'static + Send,
let force_unstable_if_unmarked = matches.opt_strs("Z").iter().any(|x| {
*x == "force-unstable-if-unmarked"
});
let treat_err_as_bug = matches.opt_strs("Z").iter().any(|x| {
*x == "treat-err-as-bug"
});

let (lint_opts, describe_lints, lint_cap) = get_cmd_lint_options(matches, error_format);

Expand All @@ -706,7 +712,8 @@ where R: 'static + Send,
core::run_core(paths, cfgs, externs, Input::File(cratefile), triple, maybe_sysroot,
display_warnings, crate_name.clone(),
force_unstable_if_unmarked, edition, cg, error_format,
lint_opts, lint_cap, describe_lints, manual_passes, default_passes);
lint_opts, lint_cap, describe_lints, manual_passes, default_passes,
treat_err_as_bug);

info!("finished with rustc");

Expand Down

0 comments on commit 108be3c

Please sign in to comment.