]> git.lizzy.rs Git - rust.git/commitdiff
Parse nil literals (including in patterns)
authorTim Chevalier <chevalier@alum.wellesley.edu>
Wed, 20 Jul 2011 22:52:38 +0000 (15:52 -0700)
committerTim Chevalier <chevalier@alum.wellesley.edu>
Wed, 20 Jul 2011 23:02:53 +0000 (16:02 -0700)
Closes #622.

src/comp/syntax/parse/parser.rs
src/test/run-pass/nil-pattern.rs [new file with mode: 0644]

index 724fcd75386bbb81d30a16bd0371b2aa1d8ac281..1e33e223d82e45163237c2f3a6dfb24d674e1dbe 100644 (file)
@@ -653,6 +653,11 @@ fn parse_lit(&parser p) -> ast::lit {
                 p.bump();
                 lit = ast::lit_str(p.get_str(s), ast::sk_rc);
             }
+            case (token::LPAREN) {
+                p.bump();
+                expect(p, token::RPAREN);
+                lit = ast::lit_nil;
+            }
             case (?t) { unexpected(p, t); }
         }
     }
diff --git a/src/test/run-pass/nil-pattern.rs b/src/test/run-pass/nil-pattern.rs
new file mode 100644 (file)
index 0000000..63f0787
--- /dev/null
@@ -0,0 +1,8 @@
+// xfail-stage0
+fn main() {
+  auto x = ();
+  alt (x) {
+    case (()) {
+    }
+  }
+}