about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2016-12-12 14:10:33 -0500
committerGitHub <noreply@github.com>2016-12-12 14:10:33 -0500
commite3363f277287fac685e52af8f8bdd1fd98c59cac (patch)
tree33634ee21387e6a03305b3e48a1ed14c6ec96165 /src
parenta9dcfd0936afb24fd3b4127e9e0af5da10f0dc96 (diff)
parentc6c3a2763bce61bd0adcd75a78f1bdcbb37d30a5 (diff)
downloadrust-e3363f277287fac685e52af8f8bdd1fd98c59cac.tar.gz
rust-e3363f277287fac685e52af8f8bdd1fd98c59cac.zip
Rollup merge of #38264 - ollie27:rustdoc_src_macro, r=brson
rustdoc: Remove broken src links from reexported items from macros

When an item is defined in an external macro it doesn't get a real
filename so we need to filter out these when generating src links for
reexported items.
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/render.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index e721b66779f..ac336fe45e5 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -1468,6 +1468,13 @@ impl<'a> Item<'a> {
                 return None;
             }
         } else {
+            // Macros from other libraries get special filenames which we can
+            // safely ignore.
+            if self.item.source.filename.starts_with("<") &&
+               self.item.source.filename.ends_with("macros>") {
+                return None;
+            }
+
             let (krate, src_root) = match cache.extern_locations.get(&self.item.def_id.krate) {
                 Some(&(ref name, ref src, Local)) => (name, src),
                 Some(&(ref name, ref src, Remote(ref s))) => {