@@ -179,7 +179,8 @@ fn encodable_substructure(
179179
180180 match * substr. fields {
181181 Struct ( _, ref fields) => {
182- let emit_struct_field = Ident :: new ( sym:: emit_struct_field, trait_span) ;
182+ let fn_emit_struct_field_path =
183+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Encodable , sym:: emit_struct_field] ) ;
183184 let mut stmts = Vec :: new ( ) ;
184185 for ( i, & FieldInfo { name, ref self_, span, .. } ) in fields. iter ( ) . enumerate ( ) {
185186 let name = match name {
@@ -189,11 +190,15 @@ fn encodable_substructure(
189190 let self_ref = cx. expr_addr_of ( span, self_. clone ( ) ) ;
190191 let enc = cx. expr_call ( span, fn_path. clone ( ) , vec ! [ self_ref, blkencoder. clone( ) ] ) ;
191192 let lambda = cx. lambda1 ( span, enc, blkarg) ;
192- let call = cx. expr_method_call (
193+ let call = cx. expr_call_global (
193194 span,
194- blkencoder. clone ( ) ,
195- emit_struct_field,
196- vec ! [ cx. expr_str( span, name) , cx. expr_usize( span, i) , lambda] ,
195+ fn_emit_struct_field_path. clone ( ) ,
196+ vec ! [
197+ blkencoder. clone( ) ,
198+ cx. expr_str( span, name) ,
199+ cx. expr_usize( span, i) ,
200+ lambda,
201+ ] ,
197202 ) ;
198203
199204 // last call doesn't need a try!
@@ -216,11 +221,14 @@ fn encodable_substructure(
216221 cx. lambda_stmts_1 ( trait_span, stmts, blkarg)
217222 } ;
218223
219- cx. expr_method_call (
224+ let fn_emit_struct_path =
225+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Encodable , sym:: emit_struct] ) ;
226+
227+ cx. expr_call_global (
220228 trait_span,
221- encoder,
222- Ident :: new ( sym:: emit_struct, trait_span) ,
229+ fn_emit_struct_path,
223230 vec ! [
231+ encoder,
224232 cx. expr_str( trait_span, substr. type_ident. name) ,
225233 cx. expr_usize( trait_span, fields. len( ) ) ,
226234 blk,
@@ -235,7 +243,13 @@ fn encodable_substructure(
235243 // actually exist.
236244 let me = cx. stmt_let ( trait_span, false , blkarg, encoder) ;
237245 let encoder = cx. expr_ident ( trait_span, blkarg) ;
238- let emit_variant_arg = Ident :: new ( sym:: emit_enum_variant_arg, trait_span) ;
246+
247+ let fn_emit_enum_variant_arg_path: Vec < _ > = cx. def_site_path ( & [
248+ sym:: rustc_serialize,
249+ sym:: Encodable ,
250+ sym:: emit_enum_variant_arg,
251+ ] ) ;
252+
239253 let mut stmts = Vec :: new ( ) ;
240254 if !fields. is_empty ( ) {
241255 let last = fields. len ( ) - 1 ;
@@ -244,11 +258,11 @@ fn encodable_substructure(
244258 let enc =
245259 cx. expr_call ( span, fn_path. clone ( ) , vec ! [ self_ref, blkencoder. clone( ) ] ) ;
246260 let lambda = cx. lambda1 ( span, enc, blkarg) ;
247- let call = cx. expr_method_call (
261+
262+ let call = cx. expr_call_global (
248263 span,
249- blkencoder. clone ( ) ,
250- emit_variant_arg,
251- vec ! [ cx. expr_usize( span, i) , lambda] ,
264+ fn_emit_enum_variant_arg_path. clone ( ) ,
265+ vec ! [ blkencoder. clone( ) , cx. expr_usize( span, i) , lambda] ,
252266 ) ;
253267 let call = if i != last {
254268 cx. expr_try ( span, call)
@@ -265,23 +279,29 @@ fn encodable_substructure(
265279
266280 let blk = cx. lambda_stmts_1 ( trait_span, stmts, blkarg) ;
267281 let name = cx. expr_str ( trait_span, variant. ident . name ) ;
268- let call = cx. expr_method_call (
282+
283+ let fn_emit_enum_variant_path: Vec < _ > =
284+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Encodable , sym:: emit_enum_variant] ) ;
285+
286+ let call = cx. expr_call_global (
269287 trait_span,
270- blkencoder,
271- Ident :: new ( sym:: emit_enum_variant, trait_span) ,
288+ fn_emit_enum_variant_path,
272289 vec ! [
290+ blkencoder,
273291 name,
274292 cx. expr_usize( trait_span, idx) ,
275293 cx. expr_usize( trait_span, fields. len( ) ) ,
276294 blk,
277295 ] ,
278296 ) ;
297+
279298 let blk = cx. lambda1 ( trait_span, call, blkarg) ;
280- let ret = cx. expr_method_call (
299+ let fn_emit_enum_path: Vec < _ > =
300+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Encodable , sym:: emit_enum] ) ;
301+ let ret = cx. expr_call_global (
281302 trait_span,
282- encoder,
283- Ident :: new ( sym:: emit_enum, trait_span) ,
284- vec ! [ cx. expr_str( trait_span, substr. type_ident. name) , blk] ,
303+ fn_emit_enum_path,
304+ vec ! [ encoder, cx. expr_str( trait_span, substr. type_ident. name) , blk] ,
285305 ) ;
286306 cx. expr_block ( cx. block ( trait_span, vec ! [ me, cx. stmt_expr( ret) ] ) )
287307 }
0 commit comments