diff options
| author | bors <bors@rust-lang.org> | 2014-06-02 01:06:39 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-06-02 01:06:39 -0700 |
| commit | 46dad765f047ae5cd49a4b6e509ab726c48838c8 (patch) | |
| tree | 9e5141d69692bb35779be040497206c6938c8ce8 /src/libsyntax | |
| parent | b981add9ee56a2d6dc11aa48f01aac5d0dda9327 (diff) | |
| parent | 1dc13e4ad4a140ae1ac4d84e13411c7406196926 (diff) | |
| download | rust-46dad765f047ae5cd49a4b6e509ab726c48838c8.tar.gz rust-46dad765f047ae5cd49a4b6e509ab726c48838c8.zip | |
auto merge of #14596 : Sawyer47/rust/encodable-fix, r=alexcrichton
Closes #14021
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/deriving/encodable.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libsyntax/ext/deriving/encodable.rs b/src/libsyntax/ext/deriving/encodable.rs index d6b7e84b535..4f92dff0c59 100644 --- a/src/libsyntax/ext/deriving/encodable.rs +++ b/src/libsyntax/ext/deriving/encodable.rs @@ -175,6 +175,14 @@ fn encodable_substructure(cx: &mut ExtCtxt, trait_span: Span, stmts.push(cx.stmt_expr(call)); } + // unit structs have no fields and need to return Ok() + if stmts.is_empty() { + let ret_ok = cx.expr(trait_span, + ExprRet(Some(cx.expr_ok(trait_span, + cx.expr_lit(trait_span, LitNil))))); + stmts.push(cx.stmt_expr(ret_ok)); + } + let blk = cx.lambda_stmts_1(trait_span, stmts, blkarg); cx.expr_method_call(trait_span, encoder, |
