about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-10-30 23:41:22 -0700
committerbors <bors@rust-lang.org>2013-10-30 23:41:22 -0700
commit68bf48e04455f59ff88feb6c18996f7ceea7eb2a (patch)
treeb23f5e6128b1e17181657bdceb6621c6e263d489 /src/libsyntax
parentc888fc6db2698268df57341cb1449d00695b86e7 (diff)
parent6ef1ab99c13b9ce77f89ec30f1cbbb06bfd6bdf1 (diff)
downloadrust-68bf48e04455f59ff88feb6c18996f7ceea7eb2a.tar.gz
rust-68bf48e04455f59ff88feb6c18996f7ceea7eb2a.zip
auto merge of #10166 : brson/rust/meta, r=alexcrichton
This doesn't fix #623 but works around it by limiting the grammar.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/parse/attr.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/parse/attr.rs b/src/libsyntax/parse/attr.rs
index a8132860b9b..9030b4394e4 100644
--- a/src/libsyntax/parse/attr.rs
+++ b/src/libsyntax/parse/attr.rs
@@ -161,6 +161,16 @@ impl parser_attr for Parser {
             token::EQ => {
                 self.bump();
                 let lit = self.parse_lit();
+                // FIXME #623 Non-string meta items are not serialized correctly;
+                // just forbid them for now
+                match lit.node {
+                    ast::lit_str(*) => (),
+                    _ => {
+                        self.span_err(
+                            lit.span,
+                            "non-string literals are not allowed in meta-items");
+                    }
+                }
                 let hi = self.span.hi;
                 @spanned(lo, hi, ast::MetaNameValue(name, lit))
             }