Skip to content

Commit ad50f33

Browse files
committed
Optimise decode return expression for unit structs
1 parent 0d278ca commit ad50f33

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/libsyntax_ext/deriving/encodable.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,13 @@ fn encodable_substructure(cx: &mut ExtCtxt,
228228
}
229229

230230
// unit structs have no fields and need to return Ok()
231-
if stmts.is_empty() {
231+
let blk = if stmts.is_empty() {
232232
let ok = cx.expr_ok(trait_span, cx.expr_tuple(trait_span, vec![]));
233-
let ret_ok = cx.expr(trait_span, ExprKind::Ret(Some(ok)));
234-
stmts.push(cx.stmt_expr(ret_ok));
235-
}
233+
cx.lambda1(trait_span, ok, blkarg)
234+
} else {
235+
cx.lambda_stmts_1(trait_span, stmts, blkarg)
236+
};
236237

237-
let blk = cx.lambda_stmts_1(trait_span, stmts, blkarg);
238238
cx.expr_method_call(trait_span,
239239
encoder,
240240
cx.ident_of("emit_struct"),

0 commit comments

Comments
 (0)