Rollup merge of #68357 - ollie27:rustdoc_test_errors, r=GuillaumeGomez

rustdoc: Fix handling of compile errors when running `rustdoc --test`

 * Call `abort_if_errors` so all errors actually stop rustdoc.
* Don't panic with "compiler aborted in rustdoc!", instead just exit to avoid the ugly panic message.
* Use rlib as the crate type when searching for doctests matching what is used for doc generation so `#[no_std]` crates don't create "no global memory allocator" errors.

Fixes #52243
Fixes #54010

r? @GuillaumeGomez
This commit is contained in:
Dylan DPC
2020-01-20 11:14:49 +05:30
committed by GitHub
9 changed files with 69 additions and 3 deletions

View File

@@ -43,7 +43,7 @@ pub fn run(options: Options) -> i32 {
let crate_types = if options.proc_macro_crate {
vec![config::CrateType::ProcMacro]
} else {
vec![config::CrateType::Dylib]
vec![config::CrateType::Rlib]
};
let sessopts = config::Options {
@@ -117,12 +117,16 @@ pub fn run(options: Options) -> i32 {
intravisit::walk_crate(this, krate);
});
});
compiler.session().abort_if_errors();
let ret: Result<_, ErrorReported> = Ok(collector.tests);
ret
})
})
.expect("compiler aborted in rustdoc!");
});
let tests = match tests {
Ok(tests) => tests,
Err(ErrorReported) => return 1,
};
test_args.insert(0, "rustdoctest".to_string());