]> git.lizzy.rs Git - rust.git/commitdiff
libsyntax: Make managed box `@` patterns obsolete
authorPatrick Walton <pcwalton@mimiga.net>
Fri, 3 Jan 2014 22:15:08 +0000 (14:15 -0800)
committerPatrick Walton <pcwalton@mimiga.net>
Mon, 13 Jan 2014 21:11:01 +0000 (13:11 -0800)
src/libsyntax/parse/obsolete.rs
src/libsyntax/parse/parser.rs

index dba4f62aa9c7e6a5858f80114c648c34330a046b..6aa1afee206ebe42f65eaffc1f5a89568205d818 100644 (file)
@@ -44,7 +44,8 @@ pub enum ObsoleteSyntax {
     ObsoleteBoxedClosure,
     ObsoleteClosureType,
     ObsoleteMultipleImport,
-    ObsoleteExternModAttributesInParens
+    ObsoleteExternModAttributesInParens,
+    ObsoleteManagedPattern,
 }
 
 impl to_bytes::IterBytes for ObsoleteSyntax {
@@ -148,7 +149,12 @@ fn obsolete(&mut self, sp: Span, kind: ObsoleteSyntax) {
                 "`extern mod` with linkage attribute list",
                 "use `extern mod foo = \"bar\";` instead of \
                 `extern mod foo (name = \"bar\")`"
-            )
+            ),
+            ObsoleteManagedPattern => (
+                "managed pointer pattern",
+                "use a nested `match` expression instead of a managed box \
+                 pattern"
+            ),
         };
 
         self.report(sp, kind, kind_str, desc);
index b783ea6da3c5471c7970b9d927f77cb0fc92154b..a71d5bf0e9e59cd7187cd63701a6a64aa1bd861c 100644 (file)
@@ -2903,7 +2903,10 @@ pub fn parse_pat(&mut self) -> @Pat {
                 };
                 PatLit(vst)
               }
-              _ => PatBox(sub)
+              _ => {
+                self.obsolete(self.span, ObsoleteManagedPattern);
+                PatBox(sub)
+              }
             };
             hi = self.last_span.hi;
             return @ast::Pat {