From f0cb0ebc669ade875c05cdef7da341a220d1b522 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sun, 16 Feb 2014 14:35:13 -0800 Subject: [PATCH] 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 --- src/librustdoc/html/render.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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")); + } _ => {} }