about summary refs log tree commit diff
path: root/src/libsyntax_expand
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-10-11 21:00:09 +0200
committerMazdak Farrokhzad <twingoow@gmail.com>2019-11-09 02:04:24 +0100
commit5011ec7fedffe34d943654ffb4308875fc5ec8f3 (patch)
treee3fd7fb355643dd09c242a1020ad0eae9580d974 /src/libsyntax_expand
parent9e346646e93cc243567e27bb0f4e8716d56ad1f1 (diff)
downloadrust-5011ec7fedffe34d943654ffb4308875fc5ec8f3.tar.gz
rust-5011ec7fedffe34d943654ffb4308875fc5ec8f3.zip
move attr meta grammar to parse::validate_atr + ast_validation
Diffstat (limited to 'src/libsyntax_expand')
-rw-r--r--src/libsyntax_expand/expand.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libsyntax_expand/expand.rs b/src/libsyntax_expand/expand.rs
index 516b284cecd..d0b60fa308d 100644
--- a/src/libsyntax_expand/expand.rs
+++ b/src/libsyntax_expand/expand.rs
@@ -14,6 +14,7 @@ use syntax::feature_gate::{self, Features, GateIssue, is_builtin_attr, emit_feat
 use syntax::mut_visit::*;
 use syntax::parse::DirectoryOwnership;
 use syntax::parse::parser::Parser;
+use syntax::parse::validate_attr;
 use syntax::print::pprust;
 use syntax::ptr::P;
 use syntax::sess::ParseSess;
@@ -640,7 +641,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
                     self.parse_ast_fragment(tok_result, fragment_kind, &item.path, span)
                 }
                 SyntaxExtensionKind::LegacyAttr(expander) => {
-                    match attr.parse_meta(self.cx.parse_sess) {
+                    match validate_attr::parse_meta(self.cx.parse_sess, &attr) {
                         Ok(meta) => {
                             let item = expander.expand(self.cx, span, &meta, item);
                             fragment_kind.expect_from_annotatables(item)
@@ -1031,6 +1032,7 @@ impl<'a, 'b> InvocationCollector<'a, 'b> {
         let features = self.cx.ecfg.features.unwrap();
         for attr in attrs.iter() {
             feature_gate::check_attribute(attr, self.cx.parse_sess, features);
+            validate_attr::check_meta(self.cx.parse_sess, attr);
 
             // macros are expanded before any lint passes so this warning has to be hardcoded
             if attr.has_name(sym::derive) {