mutability: Mutability,
type_: Box<Type>,
},
+
+ // <Type as Trait>::Name
QPath {
name: String,
self_type: Box<Type>,
trait_: Box<Type>
},
- // region, raw, other boxes, mutable
+
+ // _
+ Infer,
+
+ // for<'a> Foo(&'a)
+ PolyTraitRef(Vec<TyParamBound>),
}
#[deriving(Clone, Encodable, Decodable, PartialEq, Eq, Hash)]
}
}
TyClosure(ref c) => Closure(box c.clean(cx)),
- TyProc(ref c) => Proc(box c.clean(cx)),
TyBareFn(ref barefn) => BareFunction(box barefn.clean(cx)),
TyParen(ref ty) => ty.clean(cx),
TyQPath(ref qp) => qp.clean(cx),
- ref x => panic!("Unimplemented type {}", x),
+ TyPolyTraitRef(ref bounds) => {
+ PolyTraitRef(bounds.clean(cx))
+ },
+ TyInfer(..) => {
+ Infer
+ },
+ TyTypeof(..) => {
+ panic!("Unimplemented type {}", self.node)
+ },
}
}
}
try!(resolved_path(f, did, path, false));
tybounds(f, typarams)
}
+ clean::PolyTraitRef(ref bounds) => {
+ for (i, bound) in bounds.iter().enumerate() {
+ if i != 0 {
+ try!(write!(f, " + "));
+ }
+ try!(write!(f, "{}", *bound));
+ }
+ Ok(())
+ }
+ clean::Infer => write!(f, "_"),
clean::Self(..) => f.write("Self".as_bytes()),
clean::Primitive(prim) => primitive_link(f, prim, prim.to_string()),
clean::Closure(ref decl) => {