@@ -41,7 +41,7 @@ pub enum Target {
41
41
Union ,
42
42
Trait ,
43
43
TraitAlias ,
44
- Impl ,
44
+ Impl { of_trait : bool } ,
45
45
Expression ,
46
46
Statement ,
47
47
Arm ,
@@ -51,7 +51,7 @@ pub enum Target {
51
51
ForeignFn ,
52
52
ForeignStatic ,
53
53
ForeignTy ,
54
- GenericParam ( GenericParamKind ) ,
54
+ GenericParam { kind : GenericParamKind , has_default : bool } ,
55
55
MacroDef ,
56
56
Param ,
57
57
PatField ,
@@ -86,14 +86,14 @@ impl Target {
86
86
| Target :: Union
87
87
| Target :: Trait
88
88
| Target :: TraitAlias
89
- | Target :: Impl
89
+ | Target :: Impl { .. }
90
90
| Target :: Expression
91
91
| Target :: Statement
92
92
| Target :: Arm
93
93
| Target :: ForeignFn
94
94
| Target :: ForeignStatic
95
95
| Target :: ForeignTy
96
- | Target :: GenericParam ( _ )
96
+ | Target :: GenericParam { .. }
97
97
| Target :: MacroDef
98
98
| Target :: Param
99
99
| Target :: PatField
@@ -119,7 +119,7 @@ impl Target {
119
119
ItemKind :: Union ( ..) => Target :: Union ,
120
120
ItemKind :: Trait ( ..) => Target :: Trait ,
121
121
ItemKind :: TraitAlias ( ..) => Target :: TraitAlias ,
122
- ItemKind :: Impl { .. } => Target :: Impl ,
122
+ ItemKind :: Impl ( imp_ ) => Target :: Impl { of_trait : imp_ . of_trait . is_some ( ) } ,
123
123
}
124
124
}
125
125
@@ -141,7 +141,7 @@ impl Target {
141
141
DefKind :: Union => Target :: Union ,
142
142
DefKind :: Trait => Target :: Trait ,
143
143
DefKind :: TraitAlias => Target :: TraitAlias ,
144
- DefKind :: Impl { .. } => Target :: Impl ,
144
+ DefKind :: Impl { of_trait } => Target :: Impl { of_trait } ,
145
145
_ => panic ! ( "impossible case reached" ) ,
146
146
}
147
147
}
@@ -169,11 +169,17 @@ impl Target {
169
169
170
170
pub fn from_generic_param ( generic_param : & hir:: GenericParam < ' _ > ) -> Target {
171
171
match generic_param. kind {
172
- hir:: GenericParamKind :: Type { .. } => Target :: GenericParam ( GenericParamKind :: Type ) ,
172
+ hir:: GenericParamKind :: Type { default, .. } => Target :: GenericParam {
173
+ kind : GenericParamKind :: Type ,
174
+ has_default : default. is_some ( ) ,
175
+ } ,
173
176
hir:: GenericParamKind :: Lifetime { .. } => {
174
- Target :: GenericParam ( GenericParamKind :: Lifetime )
177
+ Target :: GenericParam { kind : GenericParamKind :: Lifetime , has_default : false }
175
178
}
176
- hir:: GenericParamKind :: Const { .. } => Target :: GenericParam ( GenericParamKind :: Const ) ,
179
+ hir:: GenericParamKind :: Const { default, .. } => Target :: GenericParam {
180
+ kind : GenericParamKind :: Const ,
181
+ has_default : default. is_some ( ) ,
182
+ } ,
177
183
}
178
184
}
179
185
@@ -196,7 +202,8 @@ impl Target {
196
202
Target :: Union => "union" ,
197
203
Target :: Trait => "trait" ,
198
204
Target :: TraitAlias => "trait alias" ,
199
- Target :: Impl => "implementation block" ,
205
+ Target :: Impl { of_trait : false } => "inherent implementation block" ,
206
+ Target :: Impl { of_trait : true } => "trait implementation block" ,
200
207
Target :: Expression => "expression" ,
201
208
Target :: Statement => "statement" ,
202
209
Target :: Arm => "match arm" ,
@@ -210,7 +217,7 @@ impl Target {
210
217
Target :: ForeignFn => "foreign function" ,
211
218
Target :: ForeignStatic => "foreign static item" ,
212
219
Target :: ForeignTy => "foreign type" ,
213
- Target :: GenericParam ( kind) => match kind {
220
+ Target :: GenericParam { kind, has_default : _ } => match kind {
214
221
GenericParamKind :: Type => "type parameter" ,
215
222
GenericParamKind :: Lifetime => "lifetime parameter" ,
216
223
GenericParamKind :: Const => "const parameter" ,
0 commit comments