@@ -91,18 +91,19 @@ fn decodable_substructure(
91
91
Unnamed ( ref fields, _) => fields. len ( ) ,
92
92
Named ( ref fields) => fields. len ( ) ,
93
93
} ;
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] ) ;
95
96
96
97
let path = cx. path_ident ( trait_span, substr. type_ident ) ;
97
98
let result =
98
99
decode_static_fields ( cx, trait_span, path, summary, |cx, span, name, field| {
99
100
cx. expr_try (
100
101
span,
101
- cx. expr_method_call (
102
+ cx. expr_call_global (
102
103
span,
103
- blkdecoder. clone ( ) ,
104
- read_struct_field,
104
+ fn_read_struct_field_path. clone ( ) ,
105
105
vec ! [
106
+ blkdecoder. clone( ) ,
106
107
cx. expr_str( span, name) ,
107
108
cx. expr_usize( span, field) ,
108
109
exprdecode. clone( ) ,
@@ -111,11 +112,14 @@ fn decodable_substructure(
111
112
)
112
113
} ) ;
113
114
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 (
115
119
trait_span,
116
- decoder,
117
- Ident :: new ( sym:: read_struct, trait_span) ,
120
+ fn_read_struct_path,
118
121
vec ! [
122
+ decoder,
119
123
cx. expr_str( trait_span, substr. type_ident. name) ,
120
124
cx. expr_usize( trait_span, nfields) ,
121
125
cx. lambda1( trait_span, result, blkarg) ,
@@ -127,7 +131,12 @@ fn decodable_substructure(
127
131
128
132
let mut arms = Vec :: with_capacity ( fields. len ( ) + 1 ) ;
129
133
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
+ ] ) ;
131
140
132
141
for ( i, & ( ident, v_span, ref parts) ) in fields. iter ( ) . enumerate ( ) {
133
142
variants. push ( cx. expr_str ( v_span, ident. name ) ) ;
@@ -138,11 +147,10 @@ fn decodable_substructure(
138
147
let idx = cx. expr_usize ( span, field) ;
139
148
cx. expr_try (
140
149
span,
141
- cx. expr_method_call (
150
+ cx. expr_call_global (
142
151
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( ) ] ,
146
154
) ,
147
155
)
148
156
} ) ;
@@ -159,17 +167,21 @@ fn decodable_substructure(
159
167
let lambda = cx. lambda ( trait_span, vec ! [ blkarg, variant] , result) ;
160
168
let variant_vec = cx. expr_vec ( trait_span, variants) ;
161
169
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 (
163
173
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] ,
167
176
) ;
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 (
169
181
trait_span,
170
- decoder,
171
- Ident :: new ( sym:: read_enum, trait_span) ,
182
+ fn_read_enum_path,
172
183
vec ! [
184
+ decoder,
173
185
cx. expr_str( trait_span, substr. type_ident. name) ,
174
186
cx. lambda1( trait_span, result, blkarg) ,
175
187
] ,
0 commit comments