diff options
| author | bors <bors@rust-lang.org> | 2017-12-29 00:41:49 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-12-29 00:41:49 +0000 |
| commit | ec9be91e4366f57dcb88169c78daaee049857af0 (patch) | |
| tree | 81e06d9a2afbffed2a411b9361f0c61e69fdfae0 | |
| parent | b84385b23b7fb28ba95e902f2cff88bb11fe7325 (diff) | |
| parent | 95f9491bc797e9e41176dbb9fecc5cb8e27d95e7 (diff) | |
| download | rust-ec9be91e4366f57dcb88169c78daaee049857af0.tar.gz rust-ec9be91e4366f57dcb88169c78daaee049857af0.zip | |
Auto merge of #47050 - ollie27:rustdoc_import_links, r=QuietMisdreavus
rustdoc: Don't try to generate links for modules in import paths The modules may be private or may even be enums so it would generate dead links. Fixes #29814 Fixes #46766 Fixes #46767
| -rw-r--r-- | src/librustdoc/html/format.rs | 26 | ||||
| -rw-r--r-- | src/test/rustdoc/issue-46766.rs | 16 | ||||
| -rw-r--r-- | src/test/rustdoc/issue-46767.rs | 18 |
3 files changed, 36 insertions, 24 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 7300721c384..92b3a404c57 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -435,32 +435,10 @@ pub fn href(did: DefId) -> Option<(String, ItemType, Vec<String>)> { fn resolved_path(w: &mut fmt::Formatter, did: DefId, path: &clean::Path, print_all: bool, use_absolute: bool) -> fmt::Result { let last = path.segments.last().unwrap(); - let rel_root = match &*path.segments[0].name { - "self" => Some("./".to_string()), - _ => None, - }; if print_all { - let amt = path.segments.len() - 1; - match rel_root { - Some(mut root) => { - for seg in &path.segments[..amt] { - if "super" == seg.name || "self" == seg.name || w.alternate() { - write!(w, "{}::", seg.name)?; - } else { - root.push_str(&seg.name); - root.push_str("/"); - write!(w, "<a class=\"mod\" href=\"{}index.html\">{}</a>::", - root, - seg.name)?; - } - } - } - None => { - for seg in &path.segments[..amt] { - write!(w, "{}::", seg.name)?; - } - } + for seg in &path.segments[..path.segments.len() - 1] { + write!(w, "{}::", seg.name)?; } } if w.alternate() { diff --git a/src/test/rustdoc/issue-46766.rs b/src/test/rustdoc/issue-46766.rs new file mode 100644 index 00000000000..cf2dd58f45b --- /dev/null +++ b/src/test/rustdoc/issue-46766.rs @@ -0,0 +1,16 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![crate_name = "foo"] + +pub enum Enum{Variant} +pub use self::Enum::Variant; + +// @!has foo/index.html '//a/@href' './Enum/index.html' diff --git a/src/test/rustdoc/issue-46767.rs b/src/test/rustdoc/issue-46767.rs new file mode 100644 index 00000000000..855de150b0a --- /dev/null +++ b/src/test/rustdoc/issue-46767.rs @@ -0,0 +1,18 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![crate_name = "foo"] + +mod private { + pub enum Enum{Variant} +} +pub use self::private::Enum::*; + +// @!has foo/index.html '//a/@href' './private/index.html' |
