mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 19:17:43 +00:00
Rollup merge of #80372 - jyn514:fix-panics, r=Manishearth
Don't panic when an external crate can't be resolved This isn't actually a bug, it can occur when rustdoc tries to resolve a crate that isn't used in the main code. Fixes #72381. r? `@kinnison` if you have time, otherwise `@Manishearth`
This commit is contained in:
commit
901b9a2d7b
@ -434,16 +434,15 @@ crate fn create_resolver<'a>(
|
|||||||
sess.time("load_extern_crates", || {
|
sess.time("load_extern_crates", || {
|
||||||
for extern_name in &extern_names {
|
for extern_name in &extern_names {
|
||||||
debug!("loading extern crate {}", extern_name);
|
debug!("loading extern crate {}", extern_name);
|
||||||
resolver
|
if let Err(()) = resolver
|
||||||
.resolve_str_path_error(
|
.resolve_str_path_error(
|
||||||
DUMMY_SP,
|
DUMMY_SP,
|
||||||
extern_name,
|
extern_name,
|
||||||
TypeNS,
|
TypeNS,
|
||||||
LocalDefId { local_def_index: CRATE_DEF_INDEX }.to_def_id(),
|
LocalDefId { local_def_index: CRATE_DEF_INDEX }.to_def_id(),
|
||||||
)
|
) {
|
||||||
.unwrap_or_else(|()| {
|
warn!("unable to resolve external crate {} (do you have an unused `--extern` crate?)", extern_name)
|
||||||
panic!("Unable to resolve external crate {}", extern_name)
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
5
src/test/rustdoc-ui/intra-doc/unused-extern-crate.rs
Normal file
5
src/test/rustdoc-ui/intra-doc/unused-extern-crate.rs
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// compile-flags: --extern zip=whatever.rlib
|
||||||
|
#![deny(broken_intra_doc_links)]
|
||||||
|
/// See [zip] crate.
|
||||||
|
//~^ ERROR unresolved
|
||||||
|
pub struct ArrayZip;
|
15
src/test/rustdoc-ui/intra-doc/unused-extern-crate.stderr
Normal file
15
src/test/rustdoc-ui/intra-doc/unused-extern-crate.stderr
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
error: unresolved link to `zip`
|
||||||
|
--> $DIR/unused-extern-crate.rs:3:10
|
||||||
|
|
|
||||||
|
LL | /// See [zip] crate.
|
||||||
|
| ^^^ no item named `zip` in scope
|
||||||
|
|
|
||||||
|
note: the lint level is defined here
|
||||||
|
--> $DIR/unused-extern-crate.rs:2:9
|
||||||
|
|
|
||||||
|
LL | #![deny(broken_intra_doc_links)]
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
= help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
Loading…
Reference in New Issue
Block a user