]> git.lizzy.rs Git - rust.git/commitdiff
syntax: add an obsolete syntax warning for @[].
authorHuon Wilson <dbau.pp+github@gmail.com>
Sat, 1 Feb 2014 12:18:45 +0000 (23:18 +1100)
committerHuon Wilson <dbau.pp+github@gmail.com>
Sat, 1 Feb 2014 15:59:04 +0000 (02:59 +1100)
src/libsyntax/parse/obsolete.rs
src/libsyntax/parse/parser.rs

index 46f1f33143e1fd88de70f4334dea947c5cf4084c..b85d89cf804a82553ca69491018631c2dd40bc2c 100644 (file)
@@ -45,6 +45,7 @@ pub enum ObsoleteSyntax {
     ObsoleteExternModAttributesInParens,
     ObsoleteManagedPattern,
     ObsoleteManagedString,
+    ObsoleteManagedVec,
 }
 
 impl to_bytes::IterBytes for ObsoleteSyntax {
@@ -154,6 +155,10 @@ fn obsolete(&mut self, sp: Span, kind: ObsoleteSyntax) {
                 "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);
index fb679fa0460d5df19a8382624618eae8b7a5b4a8..ec2a13c5a0f290b2f52c7495b2af61ea082d8e48 100644 (file)
@@ -2294,7 +2294,10 @@ pub fn parse_prefix_expr(&mut self) -> @Expr {
             // 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)