mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-12 09:41:02 +00:00
Merge pull request #41 from hugoduncan/feature/mark-field-attributes-used
Mark serde field attributes as used
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
use syntax::ast;
|
use syntax::ast;
|
||||||
|
use syntax::attr;
|
||||||
use syntax::ext::base::ExtCtxt;
|
use syntax::ext::base::ExtCtxt;
|
||||||
use syntax::ptr::P;
|
use syntax::ptr::P;
|
||||||
|
|
||||||
@@ -15,6 +16,7 @@ fn field_alias(field: &ast::StructField) -> Option<&ast::Lit> {
|
|||||||
})
|
})
|
||||||
.and_then(|sa| {
|
.and_then(|sa| {
|
||||||
if let ast::MetaList(_, ref vals) = sa.node.value.node {
|
if let ast::MetaList(_, ref vals) = sa.node.value.node {
|
||||||
|
attr::mark_used(&sa);
|
||||||
vals.iter().fold(None, |v, mi| {
|
vals.iter().fold(None, |v, mi| {
|
||||||
if let ast::MetaNameValue(ref n, ref lit) = mi.node {
|
if let ast::MetaNameValue(ref n, ref lit) = mi.node {
|
||||||
if n == &"alias" {
|
if n == &"alias" {
|
||||||
@@ -61,6 +63,7 @@ pub fn default_value(field: &ast::StructField) -> bool {
|
|||||||
.any(|sa| {
|
.any(|sa| {
|
||||||
if let ast::MetaItem_::MetaList(ref n, ref vals) = sa.node.value.node {
|
if let ast::MetaItem_::MetaList(ref n, ref vals) = sa.node.value.node {
|
||||||
if n == &"serde" {
|
if n == &"serde" {
|
||||||
|
attr::mark_used(&sa);
|
||||||
vals.iter()
|
vals.iter()
|
||||||
.map(|mi|
|
.map(|mi|
|
||||||
if let ast::MetaItem_::MetaWord(ref n) = mi.node {
|
if let ast::MetaItem_::MetaWord(ref n) = mi.node {
|
||||||
|
|||||||
Reference in New Issue
Block a user