about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2014-02-01 23:18:45 +1100
committerHuon Wilson <dbau.pp+github@gmail.com>2014-02-02 02:59:04 +1100
commitaadcf29766553a6b6ed8a3c2f50193ebd674b7a7 (patch)
tree85c5d8a881dfefab59c5b4b436cb80eb4a58c7ba /src/libsyntax
parentf8734df51500bdc924f2b504e0d7ecbe1d01bfc0 (diff)
downloadrust-aadcf29766553a6b6ed8a3c2f50193ebd674b7a7.tar.gz
rust-aadcf29766553a6b6ed8a3c2f50193ebd674b7a7.zip
syntax: add an obsolete syntax warning for @[].
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/parse/obsolete.rs5
-rw-r--r--src/libsyntax/parse/parser.rs5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs
index 46f1f33143e..b85d89cf804 100644
--- a/src/libsyntax/parse/obsolete.rs
+++ b/src/libsyntax/parse/obsolete.rs
@@ -45,6 +45,7 @@ pub enum ObsoleteSyntax {
     ObsoleteExternModAttributesInParens,
     ObsoleteManagedPattern,
     ObsoleteManagedString,
+    ObsoleteManagedVec,
 }
 
 impl to_bytes::IterBytes for ObsoleteSyntax {
@@ -154,6 +155,10 @@ impl ParserObsoleteMethods for Parser {
                 "managed string",
                 "use `Rc<~str>` instead of a managed string"
             ),
+            ObsoleteManagedVec => (
+                "managed vector",
+                "use `Rc<~[T]>` instead of a managed vector"
+            ),
         };
 
         self.report(sp, kind, kind_str, desc);
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index fb679fa0460..ec2a13c5a0f 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2294,7 +2294,10 @@ impl Parser {
             // HACK: turn @[...] into a @-vec
             ex = match e.node {
               ExprVec(..) |
-              ExprRepeat(..) => ExprVstore(e, ExprVstoreBox),
+              ExprRepeat(..) => {
+                  self.obsolete(e.span, ObsoleteManagedVec);
+                  ExprVstore(e, ExprVstoreBox)
+              }
               ExprLit(lit) if lit_is_str(lit) => {
                   self.obsolete(self.last_span, ObsoleteManagedString);
                   ExprVstore(e, ExprVstoreBox)