@@ -474,7 +474,7 @@ impl Clean<TyParam> for ty::TypeParameterDef {
474474#[ deriving( Clone , Encodable , Decodable , PartialEq ) ]
475475pub enum TyParamBound {
476476 RegionBound ( Lifetime ) ,
477- UnboxedFnBound , // FIXME
477+ UnboxedFnBound ( UnboxedFnType ) ,
478478 UnknownBound ,
479479 TraitBound ( Type )
480480}
@@ -483,10 +483,7 @@ impl Clean<TyParamBound> for ast::TyParamBound {
483483 fn clean ( & self , cx : & DocContext ) -> TyParamBound {
484484 match * self {
485485 ast:: RegionTyParamBound ( lt) => RegionBound ( lt. clean ( cx) ) ,
486- ast:: UnboxedFnTyParamBound ( _) => {
487- // FIXME(pcwalton): Wrong.
488- UnboxedFnBound
489- } ,
486+ ast:: UnboxedFnTyParamBound ( ref ty) => { UnboxedFnBound ( ty. clean ( cx) ) } ,
490487 ast:: TraitTyParamBound ( ref t) => TraitBound ( t. clean ( cx) ) ,
491488 }
492489 }
@@ -598,6 +595,21 @@ impl Clean<Option<Vec<TyParamBound>>> for subst::Substs {
598595 }
599596}
600597
598+ #[ deriving( Clone , Encodable , Decodable , PartialEq ) ]
599+ pub struct UnboxedFnType {
600+ pub path : Path ,
601+ pub decl : FnDecl
602+ }
603+
604+ impl Clean < UnboxedFnType > for ast:: UnboxedFnBound {
605+ fn clean ( & self , cx : & DocContext ) -> UnboxedFnType {
606+ UnboxedFnType {
607+ path : self . path . clean ( cx) ,
608+ decl : self . decl . clean ( cx)
609+ }
610+ }
611+ }
612+
601613#[ deriving( Clone , Encodable , Decodable , PartialEq ) ]
602614pub struct Lifetime ( String ) ;
603615
0 commit comments