diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-02-16 14:35:13 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-02-19 01:10:31 -0800 |
| commit | f0cb0ebc669ade875c05cdef7da341a220d1b522 (patch) | |
| tree | 8fa1056b93c2be49b1adfa73396b991bd72e4c45 /src/librustdoc/html | |
| parent | 74f3e0474b382160a6b0aec6e27fe239025519a0 (diff) | |
| download | rust-f0cb0ebc669ade875c05cdef7da341a220d1b522.tar.gz rust-f0cb0ebc669ade875c05cdef7da341a220d1b522.zip | |
rustdoc: Fixup links to enum variants
Pages aren't emitted for enum variants, so whenever we're linking to an enum variant instead link to the parent enum instead. Closes #12289
Diffstat (limited to 'src/librustdoc/html')
| -rw-r--r-- | src/librustdoc/html/render.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 11f80155085..7b67868680f 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -565,9 +565,16 @@ impl DocFolder for Cache { clean::StructItem(..) | clean::EnumItem(..) | clean::TypedefItem(..) | clean::TraitItem(..) | clean::FunctionItem(..) | clean::ModuleItem(..) | - clean::ForeignFunctionItem(..) | clean::VariantItem(..) => { + clean::ForeignFunctionItem(..) => { self.paths.insert(item.id, (self.stack.clone(), shortty(&item))); } + // link variants to their parent enum because pages aren't emitted + // for each variant + clean::VariantItem(..) => { + let mut stack = self.stack.clone(); + stack.pop(); + self.paths.insert(item.id, (stack, "enum")); + } _ => {} } |
