From 8ee8c070900a1720a0acdd89bcf60ffaf2e46350 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Mon, 26 Sep 2016 23:17:43 -0700 Subject: [PATCH] Mark all serde attributes as used --- serde_codegen/src/lib.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/serde_codegen/src/lib.rs b/serde_codegen/src/lib.rs index 01b26699..150360ac 100644 --- a/serde_codegen/src/lib.rs +++ b/serde_codegen/src/lib.rs @@ -140,6 +140,20 @@ macro_rules! shim { } }; + use syntax::{attr, ast, visit}; + struct MarkSerdeAttributesUsed; + impl visit::Visitor for MarkSerdeAttributesUsed { + fn visit_attribute(&mut self, attr: &ast::Attribute) { + match attr.node.value.node { + ast::MetaItemKind::List(ref name, _) if name == "serde" => { + attr::mark_used(attr); + } + _ => {} + } + } + } + visit::walk_item(&mut MarkSerdeAttributesUsed, item); + use syntax::print::pprust; let s = pprust::item_to_string(item);