Skip to content

Commit 2ba9739

Browse files
committed
Substitute Self in output of Serialize derive
1 parent 6699b0b commit 2ba9739

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

serde_derive/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ mod try;
7979

8080
#[proc_macro_derive(Serialize, attributes(serde))]
8181
pub fn derive_serialize(input: TokenStream) -> TokenStream {
82-
let input = parse_macro_input!(input as DeriveInput);
83-
ser::expand_derive_serialize(&input)
82+
let mut input = parse_macro_input!(input as DeriveInput);
83+
ser::expand_derive_serialize(&mut input)
8484
.unwrap_or_else(to_compile_errors)
8585
.into()
8686
}

serde_derive/src/ser.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ use bound;
66
use dummy;
77
use fragment::{Fragment, Match, Stmts};
88
use internals::ast::{Container, Data, Field, Style, Variant};
9-
use internals::{attr, Ctxt, Derive};
9+
use internals::{attr, replace_receiver, Ctxt, Derive};
1010
use pretend;
1111

12-
pub fn expand_derive_serialize(input: &syn::DeriveInput) -> Result<TokenStream, Vec<syn::Error>> {
12+
pub fn expand_derive_serialize(
13+
input: &mut syn::DeriveInput,
14+
) -> Result<TokenStream, Vec<syn::Error>> {
15+
replace_receiver(input);
16+
1317
let ctxt = Ctxt::new();
1418
let cont = match Container::from_ast(&ctxt, input, Derive::Serialize) {
1519
Some(cont) => cont,

0 commit comments

Comments
 (0)