about summary refs log tree commit diff
path: root/src/librustdoc/core.rs
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2021-01-08 11:11:41 +0900
committerGitHub <noreply@github.com>2021-01-08 11:11:41 +0900
commit901b9a2d7b936d3b217236df5ff1f57ef2deb6df (patch)
treeb0a71d749eefd1f881a2321be97b23a0d5cdf624 /src/librustdoc/core.rs
parent0afd72e313ed6837f3a150619475a0a480b91802 (diff)
parent7edd1810b41e239ea59b22a73a87f8c377d2293f (diff)
downloadrust-901b9a2d7b936d3b217236df5ff1f57ef2deb6df.tar.gz
rust-901b9a2d7b936d3b217236df5ff1f57ef2deb6df.zip
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`
Diffstat (limited to 'src/librustdoc/core.rs')
-rw-r--r--src/librustdoc/core.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs
index 43aaefa0870..4db5a0bccc8 100644
--- a/src/librustdoc/core.rs
+++ b/src/librustdoc/core.rs
@@ -434,16 +434,15 @@ crate fn create_resolver<'a>(
         sess.time("load_extern_crates", || {
             for extern_name in &extern_names {
                 debug!("loading extern crate {}", extern_name);
-                resolver
+                if let Err(()) = resolver
                     .resolve_str_path_error(
                         DUMMY_SP,
                         extern_name,
                         TypeNS,
                         LocalDefId { local_def_index: CRATE_DEF_INDEX }.to_def_id(),
-                    )
-                    .unwrap_or_else(|()| {
-                        panic!("Unable to resolve external crate {}", extern_name)
-                    });
+                  ) {
+                    warn!("unable to resolve external crate {} (do you have an unused `--extern` crate?)", extern_name)
+                  }
             }
         });
     });