Skip to content

Commit 25381be

Browse files
authored
Merge pull request #2442 from taiki-e/derive-build-script
Remove build script from serde_derive
2 parents 99f165b + ef2a7c7 commit 25381be

File tree

5 files changed

+10
-83
lines changed

5 files changed

+10
-83
lines changed

serde_derive/build.rs

Lines changed: 0 additions & 38 deletions
This file was deleted.

serde_derive/src/de.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ pub fn expand_derive_deserialize(
6969

7070
Ok(dummy::wrap_in_const(
7171
cont.attrs.custom_serde_path(),
72-
"DESERIALIZE",
73-
ident,
7472
impl_block,
7573
))
7674
}

serde_derive/src/dummy.rs

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
1-
use proc_macro2::{Ident, TokenStream};
2-
use quote::format_ident;
1+
use proc_macro2::TokenStream;
32

43
use syn;
54
use try;
65

7-
pub fn wrap_in_const(
8-
serde_path: Option<&syn::Path>,
9-
trait_: &str,
10-
ty: &Ident,
11-
code: TokenStream,
12-
) -> TokenStream {
6+
pub fn wrap_in_const(serde_path: Option<&syn::Path>, code: TokenStream) -> TokenStream {
137
let try_replacement = try::replacement();
148

15-
let dummy_const = if cfg!(no_underscore_consts) {
16-
format_ident!("_IMPL_{}_FOR_{}", trait_, unraw(ty))
17-
} else {
18-
format_ident!("_")
19-
};
20-
219
let use_serde = match serde_path {
2210
Some(path) => quote! {
2311
use #path as _serde;
@@ -31,14 +19,10 @@ pub fn wrap_in_const(
3119
quote! {
3220
#[doc(hidden)]
3321
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
34-
const #dummy_const: () = {
22+
const _: () = {
3523
#use_serde
3624
#try_replacement
3725
#code
3826
};
3927
}
4028
}
41-
42-
fn unraw(ident: &Ident) -> String {
43-
ident.to_string().trim_start_matches("r#").to_owned()
44-
}

serde_derive/src/pretend.rs

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -97,29 +97,14 @@ fn pretend_fields_used_struct_packed(cont: &Container, fields: &[Field]) -> Toke
9797

9898
let members = fields.iter().map(|field| &field.member).collect::<Vec<_>>();
9999

100-
#[cfg(not(no_ptr_addr_of))]
101-
{
102-
quote! {
103-
match _serde::__private::None::<&#type_ident #ty_generics> {
104-
_serde::__private::Some(__v @ #type_ident { #(#members: _),* }) => {
105-
#(
106-
let _ = _serde::__private::ptr::addr_of!(__v.#members);
107-
)*
108-
}
109-
_ => {}
110-
}
111-
}
112-
}
113-
114-
#[cfg(no_ptr_addr_of)]
115-
{
116-
let placeholders = (0usize..).map(|i| format_ident!("__v{}", i));
117-
118-
quote! {
119-
match _serde::__private::None::<#type_ident #ty_generics> {
120-
_serde::__private::Some(#type_ident { #(#members: #placeholders),* }) => {}
121-
_ => {}
100+
quote! {
101+
match _serde::__private::None::<&#type_ident #ty_generics> {
102+
_serde::__private::Some(__v @ #type_ident { #(#members: _),* }) => {
103+
#(
104+
let _ = _serde::__private::ptr::addr_of!(__v.#members);
105+
)*
122106
}
107+
_ => {}
123108
}
124109
}
125110
}

serde_derive/src/ser.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ pub fn expand_derive_serialize(
5959

6060
Ok(dummy::wrap_in_const(
6161
cont.attrs.custom_serde_path(),
62-
"SERIALIZE",
63-
ident,
6462
impl_block,
6563
))
6664
}

0 commit comments

Comments
 (0)