From bc2356558d73f5b197a693ffe20e8c610d182d82 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 20 Nov 2014 19:44:49 -0500 Subject: [PATCH] Fix rustdoc --- src/librustdoc/clean/mod.rs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 5985516a559f..6c04707b5ec1 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -972,7 +972,7 @@ impl Clean for doctree::Trait { impl Clean for ast::TraitRef { fn clean(&self, cx: &DocContext) -> Type { - resolve_type(cx, self.path.clean(cx), None, self.ref_id) + resolve_type(cx, self.path.clean(cx), self.ref_id) } } @@ -1258,8 +1258,19 @@ impl Clean for ast::Ty { TyFixedLengthVec(ref ty, ref e) => FixedVector(box ty.clean(cx), e.span.to_src(cx)), TyTup(ref tys) => Tuple(tys.clean(cx)), - TyPath(ref p, ref tpbs, id) => { - resolve_type(cx, p.clean(cx), tpbs.clean(cx), id) + TyPath(ref p, id) => { + resolve_type(cx, p.clean(cx), id) + } + TyObjectSum(ref lhs, ref bounds) => { + let lhs_ty = lhs.clean(cx); + match lhs_ty { + ResolvedPath { path, typarams: None, did } => { + ResolvedPath { path: path, typarams: Some(bounds.clean(cx)), did: did} + } + _ => { + lhs_ty // shouldn't happen + } + } } TyClosure(ref c) => Closure(box c.clean(cx)), TyProc(ref c) => Proc(box c.clean(cx)), @@ -2110,8 +2121,8 @@ fn name_from_pat(p: &ast::Pat) -> String { } /// Given a Type, resolve it using the def_map -fn resolve_type(cx: &DocContext, path: Path, - tpbs: Option>, +fn resolve_type(cx: &DocContext, + path: Path, id: ast::NodeId) -> Type { let tcx = match cx.tcx_opt() { Some(tcx) => tcx, @@ -2148,7 +2159,7 @@ fn resolve_type(cx: &DocContext, path: Path, _ => {} }; let did = register_def(&*cx, def); - ResolvedPath { path: path, typarams: tpbs, did: did } + ResolvedPath { path: path, typarams: None, did: did } } fn register_def(cx: &DocContext, def: def::Def) -> ast::DefId {