@@ -15,6 +15,7 @@ pub fn type_decodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
15
15
16
16
s. add_impl_generic ( parse_quote ! { #decoder_ty: :: rustc_type_ir:: codec:: TyDecoder #bound } ) ;
17
17
s. add_bounds ( synstructure:: AddBounds :: Fields ) ;
18
+ s. underscore_const ( true ) ;
18
19
19
20
decodable_body ( s, decoder_ty)
20
21
}
@@ -26,6 +27,7 @@ pub fn meta_decodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
26
27
s. add_impl_generic ( parse_quote ! { ' __a } ) ;
27
28
let decoder_ty = quote ! { DecodeContext <' __a, ' tcx> } ;
28
29
s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
30
+ s. underscore_const ( true ) ;
29
31
30
32
decodable_body ( s, decoder_ty)
31
33
}
@@ -34,6 +36,7 @@ pub fn decodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::Toke
34
36
let decoder_ty = quote ! { __D } ;
35
37
s. add_impl_generic ( parse_quote ! { #decoder_ty: :: rustc_span:: SpanDecoder } ) ;
36
38
s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
39
+ s. underscore_const ( true ) ;
37
40
38
41
decodable_body ( s, decoder_ty)
39
42
}
@@ -42,12 +45,13 @@ pub fn decodable_generic_derive(mut s: synstructure::Structure<'_>) -> proc_macr
42
45
let decoder_ty = quote ! { __D } ;
43
46
s. add_impl_generic ( parse_quote ! { #decoder_ty: :: rustc_serialize:: Decoder } ) ;
44
47
s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
48
+ s. underscore_const ( true ) ;
45
49
46
50
decodable_body ( s, decoder_ty)
47
51
}
48
52
49
53
fn decodable_body (
50
- s : synstructure:: Structure < ' _ > ,
54
+ mut s : synstructure:: Structure < ' _ > ,
51
55
decoder_ty : TokenStream ,
52
56
) -> proc_macro2:: TokenStream {
53
57
if let syn:: Data :: Union ( _) = s. ast ( ) . data {
@@ -93,6 +97,7 @@ fn decodable_body(
93
97
}
94
98
}
95
99
} ;
100
+ s. underscore_const ( true ) ;
96
101
97
102
s. bound_impl (
98
103
quote ! ( :: rustc_serialize:: Decodable <#decoder_ty>) ,
@@ -130,6 +135,7 @@ pub fn type_encodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
130
135
let encoder_ty = quote ! { __E } ;
131
136
s. add_impl_generic ( parse_quote ! { #encoder_ty: :: rustc_type_ir:: codec:: TyEncoder #bound } ) ;
132
137
s. add_bounds ( synstructure:: AddBounds :: Fields ) ;
138
+ s. underscore_const ( true ) ;
133
139
134
140
encodable_body ( s, encoder_ty, false )
135
141
}
@@ -141,6 +147,7 @@ pub fn meta_encodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
141
147
s. add_impl_generic ( parse_quote ! { ' __a } ) ;
142
148
let encoder_ty = quote ! { EncodeContext <' __a, ' tcx> } ;
143
149
s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
150
+ s. underscore_const ( true ) ;
144
151
145
152
encodable_body ( s, encoder_ty, true )
146
153
}
@@ -149,6 +156,7 @@ pub fn encodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::Toke
149
156
let encoder_ty = quote ! { __E } ;
150
157
s. add_impl_generic ( parse_quote ! { #encoder_ty: :: rustc_span:: SpanEncoder } ) ;
151
158
s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
159
+ s. underscore_const ( true ) ;
152
160
153
161
encodable_body ( s, encoder_ty, false )
154
162
}
@@ -157,6 +165,7 @@ pub fn encodable_generic_derive(mut s: synstructure::Structure<'_>) -> proc_macr
157
165
let encoder_ty = quote ! { __E } ;
158
166
s. add_impl_generic ( parse_quote ! { #encoder_ty: :: rustc_serialize:: Encoder } ) ;
159
167
s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
168
+ s. underscore_const ( true ) ;
160
169
161
170
encodable_body ( s, encoder_ty, false )
162
171
}
@@ -170,6 +179,7 @@ fn encodable_body(
170
179
panic ! ( "cannot derive on union" )
171
180
}
172
181
182
+ s. underscore_const ( true ) ;
173
183
s. bind_with ( |binding| {
174
184
// Handle the lack of a blanket reference impl.
175
185
if let syn:: Type :: Reference ( _) = binding. ast ( ) . ty {
0 commit comments