about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-10-29 17:47:11 -0700
committerBrian Anderson <banderson@mozilla.com>2013-10-30 14:06:22 -0700
commit6ef1ab99c13b9ce77f89ec30f1cbbb06bfd6bdf1 (patch)
treee1c5a9559c9c5ea1756a86ad7b973698d1cd9da3 /src/libsyntax/parse
parent611c94d984c1c062d6e123d986c0511443900850 (diff)
downloadrust-6ef1ab99c13b9ce77f89ec30f1cbbb06bfd6bdf1.tar.gz
rust-6ef1ab99c13b9ce77f89ec30f1cbbb06bfd6bdf1.zip
syntax: Forbid non-string literals in meta items. #623
Diffstat (limited to 'src/libsyntax/parse')
-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))
             }