@@ -15,6 +15,7 @@ pub fn type_decodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
1515
1616 s. add_impl_generic ( parse_quote ! { #decoder_ty: :: rustc_type_ir:: codec:: TyDecoder #bound } ) ;
1717 s. add_bounds ( synstructure:: AddBounds :: Fields ) ;
18+ s. underscore_const ( true ) ;
1819
1920 decodable_body ( s, decoder_ty)
2021}
@@ -26,6 +27,7 @@ pub fn meta_decodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
2627 s. add_impl_generic ( parse_quote ! { ' __a } ) ;
2728 let decoder_ty = quote ! { DecodeContext <' __a, ' tcx> } ;
2829 s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
30+ s. underscore_const ( true ) ;
2931
3032 decodable_body ( s, decoder_ty)
3133}
@@ -34,6 +36,7 @@ pub fn decodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::Toke
3436 let decoder_ty = quote ! { __D } ;
3537 s. add_impl_generic ( parse_quote ! { #decoder_ty: :: rustc_span:: SpanDecoder } ) ;
3638 s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
39+ s. underscore_const ( true ) ;
3740
3841 decodable_body ( s, decoder_ty)
3942}
@@ -42,12 +45,13 @@ pub fn decodable_generic_derive(mut s: synstructure::Structure<'_>) -> proc_macr
4245 let decoder_ty = quote ! { __D } ;
4346 s. add_impl_generic ( parse_quote ! { #decoder_ty: :: rustc_serialize:: Decoder } ) ;
4447 s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
48+ s. underscore_const ( true ) ;
4549
4650 decodable_body ( s, decoder_ty)
4751}
4852
4953fn decodable_body (
50- s : synstructure:: Structure < ' _ > ,
54+ mut s : synstructure:: Structure < ' _ > ,
5155 decoder_ty : TokenStream ,
5256) -> proc_macro2:: TokenStream {
5357 if let syn:: Data :: Union ( _) = s. ast ( ) . data {
@@ -93,6 +97,7 @@ fn decodable_body(
9397 }
9498 }
9599 } ;
100+ s. underscore_const ( true ) ;
96101
97102 s. bound_impl (
98103 quote ! ( :: rustc_serialize:: Decodable <#decoder_ty>) ,
@@ -130,6 +135,7 @@ pub fn type_encodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
130135 let encoder_ty = quote ! { __E } ;
131136 s. add_impl_generic ( parse_quote ! { #encoder_ty: :: rustc_type_ir:: codec:: TyEncoder #bound } ) ;
132137 s. add_bounds ( synstructure:: AddBounds :: Fields ) ;
138+ s. underscore_const ( true ) ;
133139
134140 encodable_body ( s, encoder_ty, false )
135141}
@@ -141,6 +147,7 @@ pub fn meta_encodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2:
141147 s. add_impl_generic ( parse_quote ! { ' __a } ) ;
142148 let encoder_ty = quote ! { EncodeContext <' __a, ' tcx> } ;
143149 s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
150+ s. underscore_const ( true ) ;
144151
145152 encodable_body ( s, encoder_ty, true )
146153}
@@ -149,6 +156,7 @@ pub fn encodable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::Toke
149156 let encoder_ty = quote ! { __E } ;
150157 s. add_impl_generic ( parse_quote ! { #encoder_ty: :: rustc_span:: SpanEncoder } ) ;
151158 s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
159+ s. underscore_const ( true ) ;
152160
153161 encodable_body ( s, encoder_ty, false )
154162}
@@ -157,6 +165,7 @@ pub fn encodable_generic_derive(mut s: synstructure::Structure<'_>) -> proc_macr
157165 let encoder_ty = quote ! { __E } ;
158166 s. add_impl_generic ( parse_quote ! { #encoder_ty: :: rustc_serialize:: Encoder } ) ;
159167 s. add_bounds ( synstructure:: AddBounds :: Generics ) ;
168+ s. underscore_const ( true ) ;
160169
161170 encodable_body ( s, encoder_ty, false )
162171}
@@ -170,6 +179,7 @@ fn encodable_body(
170179 panic ! ( "cannot derive on union" )
171180 }
172181
182+ s. underscore_const ( true ) ;
173183 s. bind_with ( |binding| {
174184 // Handle the lack of a blanket reference impl.
175185 if let syn:: Type :: Reference ( _) = binding. ast ( ) . ty {
0 commit comments