Merge pull request #1442 from tcr/master

Adds support for the default attr to tuple variants in enums.
This commit is contained in:
David Tolnay 2018-12-10 22:09:21 -08:00 committed by GitHub
commit 65705e2091
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -661,11 +661,18 @@ fn deserialize_seq(
})
}
};
let value = match *field.attrs.default() {
attr::Default::Default => quote!(_serde::export::Default::default()),
attr::Default::Path(ref path) => quote!(#path()),
attr::Default::None => quote!(
return _serde::export::Err(_serde::de::Error::invalid_length(#index_in_seq, &#expecting));
),
};
let assign = quote! {
let #var = match #visit {
_serde::export::Some(__value) => __value,
_serde::export::None => {
return _serde::export::Err(_serde::de::Error::invalid_length(#index_in_seq, &#expecting));
#value
}
};
};