@@ -17,7 +17,7 @@ pub use self::IntType::*;
17
17
use ast;
18
18
use ast:: { AttrId , Attribute , Name , Ident , Path , PathSegment } ;
19
19
use ast:: { MetaItem , MetaItemKind , NestedMetaItem , NestedMetaItemKind } ;
20
- use ast:: { Lit , LitKind , Expr , ExprKind , Item , Local , Stmt , StmtKind } ;
20
+ use ast:: { Lit , LitKind , Expr , ExprKind , Item , Local , Stmt , StmtKind , GenericParam } ;
21
21
use codemap:: { BytePos , Spanned , respan, dummy_spanned} ;
22
22
use syntax_pos:: Span ;
23
23
use errors:: { Applicability , Handler } ;
@@ -1444,6 +1444,22 @@ impl HasAttrs for Stmt {
1444
1444
}
1445
1445
}
1446
1446
1447
+ impl HasAttrs for GenericParam {
1448
+ fn attrs ( & self ) -> & [ ast:: Attribute ] {
1449
+ match self {
1450
+ GenericParam :: Lifetime ( lifetime) => lifetime. attrs ( ) ,
1451
+ GenericParam :: Type ( ty) => ty. attrs ( ) ,
1452
+ }
1453
+ }
1454
+
1455
+ fn map_attrs < F : FnOnce ( Vec < Attribute > ) -> Vec < Attribute > > ( self , f : F ) -> Self {
1456
+ match self {
1457
+ GenericParam :: Lifetime ( lifetime) => GenericParam :: Lifetime ( lifetime. map_attrs ( f) ) ,
1458
+ GenericParam :: Type ( ty) => GenericParam :: Type ( ty. map_attrs ( f) ) ,
1459
+ }
1460
+ }
1461
+ }
1462
+
1447
1463
macro_rules! derive_has_attrs {
1448
1464
( $( $ty: path) ,* ) => { $(
1449
1465
impl HasAttrs for $ty {
@@ -1463,5 +1479,5 @@ macro_rules! derive_has_attrs {
1463
1479
1464
1480
derive_has_attrs ! {
1465
1481
Item , Expr , Local , ast:: ForeignItem , ast:: StructField , ast:: ImplItem , ast:: TraitItem , ast:: Arm ,
1466
- ast:: Field , ast:: FieldPat , ast:: Variant_
1482
+ ast:: Field , ast:: FieldPat , ast:: Variant_ , ast :: LifetimeDef , ast :: TyParam
1467
1483
}
0 commit comments