Implement RFC#1559: allow all literals in attributes.

This commit is contained in:
Sergio Benitez
2016-08-19 18:58:14 -07:00
parent 528c6f3ed6
commit 8250a26b5b
45 changed files with 942 additions and 373 deletions

View File

@@ -11,7 +11,7 @@
//! The compiler code necessary to implement the `#[derive]` extensions.
use syntax::ast::{self, MetaItem};
use syntax::attr::AttrMetaMethods;
use syntax::attr::{AttrNestedMetaItemMethods, AttrMetaMethods};
use syntax::ext::base::{Annotatable, ExtCtxt, SyntaxEnv};
use syntax::ext::base::{MultiDecorator, MultiItemDecorator, MultiModifier};
use syntax::ext::build::AstBuilder;
@@ -98,8 +98,8 @@ fn expand_derive(cx: &mut ExtCtxt,
let mut eq_span = None;
for titem in traits.iter().rev() {
let tname = if titem.is_word() {
titem.name()
let tname = if let Some(word) = titem.word() {
word.name()
} else {
cx.span_err(titem.span, "malformed `derive` entry");
continue;