about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaron Hill <aa1ronham@gmail.com>2019-04-07 19:15:32 -0400
committerAaron Hill <aa1ronham@gmail.com>2019-04-14 15:45:18 -0400
commit724f6a11b3b9ea7c267c8f009f2e6958e6286e5f (patch)
tree2d91a87ef64400a9db06745d8bc44b613962405b
parent482b77a1470681da08748f1461c598eb8e48615b (diff)
downloadrust-724f6a11b3b9ea7c267c8f009f2e6958e6286e5f.tar.gz
rust-724f6a11b3b9ea7c267c8f009f2e6958e6286e5f.zip
Update rustdoc to new ExternEntry format
-rw-r--r--src/librustdoc/config.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs
index fae07be1017..8a669cad514 100644
--- a/src/librustdoc/config.rs
+++ b/src/librustdoc/config.rs
@@ -578,7 +578,7 @@ fn parse_extern_html_roots(
 /// error message.
 // FIXME(eddyb) This shouldn't be duplicated with `rustc::session`.
 fn parse_externs(matches: &getopts::Matches) -> Result<Externs, String> {
-    let mut externs: BTreeMap<_, BTreeSet<_>> = BTreeMap::new();
+    let mut externs: BTreeMap<_, ExternEntry> = BTreeMap::new();
     for arg in &matches.opt_strs("extern") {
         let mut parts = arg.splitn(2, '=');
         let name = parts.next().ok_or("--extern value must not be empty".to_string())?;
@@ -589,7 +589,13 @@ fn parse_externs(matches: &getopts::Matches) -> Result<Externs, String> {
         }
         let name = name.to_string();
         // For Rustdoc purposes, we can treat all externs as public
-        externs.entry(name).or_default().insert(ExternEntry { location, public: true });
+        externs.entry(name)
+            .and_modify(|e| { e.locations.insert(location.clone()); } )
+            .or_insert_with(|| {
+                let mut locations = BTreeSet::new();
+                locations.insert(location);
+                ExternEntry { locations, is_private_dep: false }
+            });
     }
     Ok(Externs::new(externs))
 }