@@ -91,18 +91,19 @@ fn decodable_substructure(
9191 Unnamed ( ref fields, _) => fields. len ( ) ,
9292 Named ( ref fields) => fields. len ( ) ,
9393 } ;
94- let read_struct_field = Ident :: new ( sym:: read_struct_field, trait_span) ;
94+ let fn_read_struct_field_path: Vec < _ > =
95+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Decodable , sym:: read_struct_field] ) ;
9596
9697 let path = cx. path_ident ( trait_span, substr. type_ident ) ;
9798 let result =
9899 decode_static_fields ( cx, trait_span, path, summary, |cx, span, name, field| {
99100 cx. expr_try (
100101 span,
101- cx. expr_method_call (
102+ cx. expr_call_global (
102103 span,
103- blkdecoder. clone ( ) ,
104- read_struct_field,
104+ fn_read_struct_field_path. clone ( ) ,
105105 vec ! [
106+ blkdecoder. clone( ) ,
106107 cx. expr_str( span, name) ,
107108 cx. expr_usize( span, field) ,
108109 exprdecode. clone( ) ,
@@ -111,11 +112,14 @@ fn decodable_substructure(
111112 )
112113 } ) ;
113114 let result = cx. expr_ok ( trait_span, result) ;
114- cx. expr_method_call (
115+ let fn_read_struct_path: Vec < _ > =
116+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Decodable , sym:: read_struct] ) ;
117+
118+ cx. expr_call_global (
115119 trait_span,
116- decoder,
117- Ident :: new ( sym:: read_struct, trait_span) ,
120+ fn_read_struct_path,
118121 vec ! [
122+ decoder,
119123 cx. expr_str( trait_span, substr. type_ident. name) ,
120124 cx. expr_usize( trait_span, nfields) ,
121125 cx. lambda1( trait_span, result, blkarg) ,
@@ -127,7 +131,12 @@ fn decodable_substructure(
127131
128132 let mut arms = Vec :: with_capacity ( fields. len ( ) + 1 ) ;
129133 let mut variants = Vec :: with_capacity ( fields. len ( ) ) ;
130- let rvariant_arg = Ident :: new ( sym:: read_enum_variant_arg, trait_span) ;
134+
135+ let fn_read_enum_variant_arg_path: Vec < _ > = cx. def_site_path ( & [
136+ sym:: rustc_serialize,
137+ sym:: Decodable ,
138+ sym:: read_enum_variant_arg,
139+ ] ) ;
131140
132141 for ( i, & ( ident, v_span, ref parts) ) in fields. iter ( ) . enumerate ( ) {
133142 variants. push ( cx. expr_str ( v_span, ident. name ) ) ;
@@ -138,11 +147,10 @@ fn decodable_substructure(
138147 let idx = cx. expr_usize ( span, field) ;
139148 cx. expr_try (
140149 span,
141- cx. expr_method_call (
150+ cx. expr_call_global (
142151 span,
143- blkdecoder. clone ( ) ,
144- rvariant_arg,
145- vec ! [ idx, exprdecode. clone( ) ] ,
152+ fn_read_enum_variant_arg_path. clone ( ) ,
153+ vec ! [ blkdecoder. clone( ) , idx, exprdecode. clone( ) ] ,
146154 ) ,
147155 )
148156 } ) ;
@@ -159,17 +167,21 @@ fn decodable_substructure(
159167 let lambda = cx. lambda ( trait_span, vec ! [ blkarg, variant] , result) ;
160168 let variant_vec = cx. expr_vec ( trait_span, variants) ;
161169 let variant_vec = cx. expr_addr_of ( trait_span, variant_vec) ;
162- let result = cx. expr_method_call (
170+ let fn_read_enum_variant_path: Vec < _ > =
171+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Decodable , sym:: read_enum_variant] ) ;
172+ let result = cx. expr_call_global (
163173 trait_span,
164- blkdecoder,
165- Ident :: new ( sym:: read_enum_variant, trait_span) ,
166- vec ! [ variant_vec, lambda] ,
174+ fn_read_enum_variant_path,
175+ vec ! [ blkdecoder, variant_vec, lambda] ,
167176 ) ;
168- cx. expr_method_call (
177+ let fn_read_enum_path: Vec < _ > =
178+ cx. def_site_path ( & [ sym:: rustc_serialize, sym:: Decodable , sym:: read_enum] ) ;
179+
180+ cx. expr_call_global (
169181 trait_span,
170- decoder,
171- Ident :: new ( sym:: read_enum, trait_span) ,
182+ fn_read_enum_path,
172183 vec ! [
184+ decoder,
173185 cx. expr_str( trait_span, substr. type_ident. name) ,
174186 cx. lambda1( trait_span, result, blkarg) ,
175187 ] ,
0 commit comments