@@ -53,6 +53,7 @@ pub enum Annotatable {
53
53
FieldDef ( ast:: FieldDef ) ,
54
54
Variant ( ast:: Variant ) ,
55
55
Crate ( ast:: Crate ) ,
56
+ WherePredicate ( ast:: WherePredicate ) ,
56
57
}
57
58
58
59
impl Annotatable {
@@ -71,6 +72,7 @@ impl Annotatable {
71
72
Annotatable :: FieldDef ( sf) => sf. span ,
72
73
Annotatable :: Variant ( v) => v. span ,
73
74
Annotatable :: Crate ( c) => c. spans . inner_span ,
75
+ Annotatable :: WherePredicate ( wp) => wp. span ,
74
76
}
75
77
}
76
78
@@ -89,6 +91,7 @@ impl Annotatable {
89
91
Annotatable :: FieldDef ( sf) => sf. visit_attrs ( f) ,
90
92
Annotatable :: Variant ( v) => v. visit_attrs ( f) ,
91
93
Annotatable :: Crate ( c) => c. visit_attrs ( f) ,
94
+ Annotatable :: WherePredicate ( wp) => wp. visit_attrs ( f) ,
92
95
}
93
96
}
94
97
@@ -107,6 +110,7 @@ impl Annotatable {
107
110
Annotatable :: FieldDef ( sf) => visitor. visit_field_def ( sf) ,
108
111
Annotatable :: Variant ( v) => visitor. visit_variant ( v) ,
109
112
Annotatable :: Crate ( c) => visitor. visit_crate ( c) ,
113
+ Annotatable :: WherePredicate ( wp) => visitor. visit_where_predicate ( wp) ,
110
114
}
111
115
}
112
116
@@ -127,7 +131,8 @@ impl Annotatable {
127
131
| Annotatable :: Param ( ..)
128
132
| Annotatable :: FieldDef ( ..)
129
133
| Annotatable :: Variant ( ..)
130
- | Annotatable :: Crate ( ..) => panic ! ( "unexpected annotatable" ) ,
134
+ | Annotatable :: Crate ( ..)
135
+ | Annotatable :: WherePredicate ( ..) => panic ! ( "unexpected annotatable" ) ,
131
136
}
132
137
}
133
138
@@ -228,6 +233,13 @@ impl Annotatable {
228
233
_ => panic ! ( "expected krate" ) ,
229
234
}
230
235
}
236
+
237
+ pub fn expect_where_predicate ( self ) -> ast:: WherePredicate {
238
+ match self {
239
+ Annotatable :: WherePredicate ( wp) => wp,
240
+ _ => panic ! ( "expected where predicate" ) ,
241
+ }
242
+ }
231
243
}
232
244
233
245
/// Result of an expansion that may need to be retried.
@@ -449,6 +461,10 @@ pub trait MacResult {
449
461
// Fn-like macros cannot produce a crate.
450
462
unreachable ! ( )
451
463
}
464
+
465
+ fn make_where_predicates ( self : Box < Self > ) -> Option < SmallVec < [ ast:: WherePredicate ; 1 ] > > {
466
+ None
467
+ }
452
468
}
453
469
454
470
macro_rules! make_MacEager {
0 commit comments