Skip to content

Commit 0375022

Browse files
committed
fix derive(RustcEncodable, RustcDecodable)
1 parent 091ef95 commit 0375022

File tree

2 files changed

+12
-18
lines changed

2 files changed

+12
-18
lines changed

compiler/rustc_builtin_macros/src/deriving/decodable.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ fn decodable_substructure(
9292
Named(ref fields) => fields.len(),
9393
};
9494
let fn_read_struct_field_path: Vec<_> =
95-
cx.def_site_path(&[sym::rustc_serialize, sym::Decodable, sym::read_struct_field]);
95+
cx.def_site_path(&[sym::rustc_serialize, sym::Decoder, sym::read_struct_field]);
9696

9797
let path = cx.path_ident(trait_span, substr.type_ident);
9898
let result =
@@ -113,7 +113,7 @@ fn decodable_substructure(
113113
});
114114
let result = cx.expr_ok(trait_span, result);
115115
let fn_read_struct_path: Vec<_> =
116-
cx.def_site_path(&[sym::rustc_serialize, sym::Decodable, sym::read_struct]);
116+
cx.def_site_path(&[sym::rustc_serialize, sym::Decoder, sym::read_struct]);
117117

118118
cx.expr_call_global(
119119
trait_span,
@@ -132,11 +132,8 @@ fn decodable_substructure(
132132
let mut arms = Vec::with_capacity(fields.len() + 1);
133133
let mut variants = Vec::with_capacity(fields.len());
134134

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-
]);
135+
let fn_read_enum_variant_arg_path: Vec<_> =
136+
cx.def_site_path(&[sym::rustc_serialize, sym::Decoder, sym::read_enum_variant_arg]);
140137

141138
for (i, &(ident, v_span, ref parts)) in fields.iter().enumerate() {
142139
variants.push(cx.expr_str(v_span, ident.name));
@@ -168,14 +165,14 @@ fn decodable_substructure(
168165
let variant_vec = cx.expr_vec(trait_span, variants);
169166
let variant_vec = cx.expr_addr_of(trait_span, variant_vec);
170167
let fn_read_enum_variant_path: Vec<_> =
171-
cx.def_site_path(&[sym::rustc_serialize, sym::Decodable, sym::read_enum_variant]);
168+
cx.def_site_path(&[sym::rustc_serialize, sym::Decoder, sym::read_enum_variant]);
172169
let result = cx.expr_call_global(
173170
trait_span,
174171
fn_read_enum_variant_path,
175172
vec![blkdecoder, variant_vec, lambda],
176173
);
177174
let fn_read_enum_path: Vec<_> =
178-
cx.def_site_path(&[sym::rustc_serialize, sym::Decodable, sym::read_enum]);
175+
cx.def_site_path(&[sym::rustc_serialize, sym::Decoder, sym::read_enum]);
179176

180177
cx.expr_call_global(
181178
trait_span,

compiler/rustc_builtin_macros/src/deriving/encodable.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ fn encodable_substructure(
180180
match *substr.fields {
181181
Struct(_, ref fields) => {
182182
let fn_emit_struct_field_path =
183-
cx.def_site_path(&[sym::rustc_serialize, sym::Encodable, sym::emit_struct_field]);
183+
cx.def_site_path(&[sym::rustc_serialize, sym::Encoder, sym::emit_struct_field]);
184184
let mut stmts = Vec::new();
185185
for (i, &FieldInfo { name, ref self_, span, .. }) in fields.iter().enumerate() {
186186
let name = match name {
@@ -222,7 +222,7 @@ fn encodable_substructure(
222222
};
223223

224224
let fn_emit_struct_path =
225-
cx.def_site_path(&[sym::rustc_serialize, sym::Encodable, sym::emit_struct]);
225+
cx.def_site_path(&[sym::rustc_serialize, sym::Encoder, sym::emit_struct]);
226226

227227
cx.expr_call_global(
228228
trait_span,
@@ -244,11 +244,8 @@ fn encodable_substructure(
244244
let me = cx.stmt_let(trait_span, false, blkarg, encoder);
245245
let encoder = cx.expr_ident(trait_span, blkarg);
246246

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-
]);
247+
let fn_emit_enum_variant_arg_path: Vec<_> =
248+
cx.def_site_path(&[sym::rustc_serialize, sym::Encoder, sym::emit_enum_variant_arg]);
252249

253250
let mut stmts = Vec::new();
254251
if !fields.is_empty() {
@@ -281,7 +278,7 @@ fn encodable_substructure(
281278
let name = cx.expr_str(trait_span, variant.ident.name);
282279

283280
let fn_emit_enum_variant_path: Vec<_> =
284-
cx.def_site_path(&[sym::rustc_serialize, sym::Encodable, sym::emit_enum_variant]);
281+
cx.def_site_path(&[sym::rustc_serialize, sym::Encoder, sym::emit_enum_variant]);
285282

286283
let call = cx.expr_call_global(
287284
trait_span,
@@ -297,7 +294,7 @@ fn encodable_substructure(
297294

298295
let blk = cx.lambda1(trait_span, call, blkarg);
299296
let fn_emit_enum_path: Vec<_> =
300-
cx.def_site_path(&[sym::rustc_serialize, sym::Encodable, sym::emit_enum]);
297+
cx.def_site_path(&[sym::rustc_serialize, sym::Encoder, sym::emit_enum]);
301298
let ret = cx.expr_call_global(
302299
trait_span,
303300
fn_emit_enum_path,

0 commit comments

Comments
 (0)