Clean up workaround that required too many parentheses

The issue has been fixed in the compiler and these extra call site parentheses
are no longer required.
This commit is contained in:
David Tolnay 2018-03-09 00:21:57 -08:00
parent 3f75239bfb
commit 30361ac6d0
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
7 changed files with 8 additions and 32 deletions

View File

@ -566,16 +566,14 @@ fn deserialize_seq(
}
});
// FIXME: parentheses around field values are because of
// https://github.com/rust-lang/rust/issues/47311
let mut result = if is_struct {
let names = fields.iter().map(|f| &f.ident);
quote_spanned! {Span::call_site()=>
#type_path { #( #names: (#vars) ),* }
#type_path { #( #names: #vars ),* }
}
} else {
quote_spanned! {Span::call_site()=>
#type_path ( #((#vars)),* )
#type_path ( #(#vars),* )
}
};
@ -718,9 +716,7 @@ fn deserialize_newtype_struct(type_path: &Tokens, params: &Parameters, field: &F
}
};
// FIXME: parentheses around field values are because of
// https://github.com/rust-lang/rust/issues/47311
let mut result = quote_spanned!(Span::call_site()=> #type_path((#value)));
let mut result = quote_spanned!(Span::call_site()=> #type_path(#value));
if params.has_getter {
let this = &params.this;
result = quote! {
@ -2054,15 +2050,13 @@ fn deserialize_map(
}
});
// FIXME: parentheses around field values are because of
// https://github.com/rust-lang/rust/issues/47311
let result = fields_names.iter().map(|&(field, ref name)| {
let ident = field.ident.expect("struct contains unnamed fields");
if field.attrs.skip_deserializing() {
let value = Expr(expr_is_missing(field, cattrs));
quote_spanned!(Span::call_site()=> #ident: (#value))
quote_spanned!(Span::call_site()=> #ident: #value)
} else {
quote_spanned!(Span::call_site()=> #ident: (#name))
quote_spanned!(Span::call_site()=> #ident: #name)
}
});

View File

@ -9,10 +9,6 @@
#![feature(lang_items, start, compiler_builtins_lib)]
#![no_std]
// https://github.com/rust-lang/rust/issues/47311
#![allow(unused_parens)]
#![cfg_attr(feature = "cargo-clippy", allow(double_parens))]
extern crate libc;
extern crate compiler_builtins;

View File

@ -8,10 +8,6 @@
#![cfg_attr(feature = "cargo-clippy", allow(cast_lossless))]
// https://github.com/rust-lang/rust/issues/47311
#![allow(unused_parens)]
#![cfg_attr(feature = "cargo-clippy", allow(double_parens))]
#[macro_use]
extern crate serde_derive;

View File

@ -6,9 +6,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// https://github.com/rust-lang/rust/issues/47311
#![allow(unused_parens)]
#![cfg_attr(feature = "cargo-clippy", allow(decimal_literal_representation, double_parens))]
#![cfg_attr(feature = "cargo-clippy", allow(decimal_literal_representation))]
#[macro_use]
extern crate serde_derive;

View File

@ -13,10 +13,6 @@
#![deny(warnings)]
#![cfg_attr(feature = "unstable", feature(non_ascii_idents))]
// https://github.com/rust-lang/rust/issues/47311
#![allow(unused_parens)]
#![cfg_attr(feature = "cargo-clippy", allow(double_parens))]
#[macro_use]
extern crate serde_derive;

View File

@ -8,9 +8,7 @@
#![deny(trivial_numeric_casts)]
// https://github.com/rust-lang/rust/issues/47311
#![allow(unused_parens)]
#![cfg_attr(feature = "cargo-clippy", allow(double_parens, redundant_field_names))]
#![cfg_attr(feature = "cargo-clippy", allow(redundant_field_names))]
#[macro_use]
extern crate serde_derive;

View File

@ -6,9 +6,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// https://github.com/rust-lang/rust/issues/47311
#![allow(unused_parens)]
#![cfg_attr(feature = "cargo-clippy", allow(double_parens, redundant_field_names))]
#![cfg_attr(feature = "cargo-clippy", allow(redundant_field_names))]
#[macro_use]
extern crate serde_derive;