about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-03-07 18:59:00 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-03-11 09:36:00 -0700
commita34749c28908997f8c58a646c9238c3dd8ea1103 (patch)
treeedfc29040f43e0334300e980453f18b4680864f4 /src/libsyntax/parse
parent1fcb0443cf2a5575691b70e7ef80e9720bc4bc07 (diff)
libsyntax: Stop parsing newtype enums
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/obsolete.rs5
-rw-r--r--src/libsyntax/parse/parser.rs14
2 files changed, 9 insertions, 10 deletions
diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs
index 757df713fc0..ef858a2d5eb 100644
--- a/src/libsyntax/parse/obsolete.rs
+++ b/src/libsyntax/parse/obsolete.rs
@@ -54,6 +54,7 @@ pub enum ObsoleteSyntax {
     ObsoleteAssertion,
     ObsoletePostFnTySigil,
     ObsoleteBareFnType,
+    ObsoleteNewtypeEnum,
 }
 
 impl to_bytes::IterBytes for ObsoleteSyntax {
@@ -171,6 +172,10 @@ pub impl Parser {
                 "bare function type",
                 "use `&fn` or `extern fn` instead"
             ),
+            ObsoleteNewtypeEnum => (
+                "newtype enum",
+                "instead of `enum Foo = int`, write `struct Foo(int)`"
+            ),
         };
 
         self.report(sp, kind, kind_str, desc);
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index b2f11b8c437..99c1c2cb1fe 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -76,11 +76,8 @@ use parse::obsolete::{ObsoleteUnsafeBlock, ObsoleteImplSyntax};
 use parse::obsolete::{ObsoleteTraitBoundSeparator, ObsoleteMutOwnedPointer};
 use parse::obsolete::{ObsoleteMutVector, ObsoleteTraitImplVisibility};
 use parse::obsolete::{ObsoleteRecordType, ObsoleteRecordPattern};
-<<<<<<< HEAD
 use parse::obsolete::{ObsoleteAssertion, ObsoletePostFnTySigil};
-=======
-use parse::obsolete::{ObsoleteAssertion, ObsoleteBareFnType};
->>>>>>> libsyntax: Stop parsing bare functions in preparation for switching them over
+use parse::obsolete::{ObsoleteBareFnType, ObsoleteNewtypeEnum};
 use parse::prec::{as_prec, token_to_binop};
 use parse::token::{can_begin_expr, is_ident, is_ident_or_path};
 use parse::token::{is_plain_ident, INTERPOLATED, special_idents};
@@ -651,14 +648,9 @@ pub impl Parser {
         } else if self.eat_keyword(&~"extern") {
             self.parse_ty_bare_fn()
         } else if self.token_is_closure_keyword(&copy *self.token) {
-<<<<<<< HEAD
-            // self.warn(fmt!("Old-school closure keyword"));
-            self.parse_ty_closure(ast::BorrowedSigil, None)
-=======
-            let result = self.parse_ty_closure(None, None);
+            let result = self.parse_ty_closure(ast::BorrowedSigil, None);
             self.obsolete(*self.last_span, ObsoleteBareFnType);
             result
->>>>>>> libsyntax: Stop parsing bare functions in preparation for switching them over
         } else if *self.token == token::MOD_SEP
             || is_ident_or_path(&*self.token) {
             let path = self.parse_path_with_tps(colons_before_params);
@@ -3798,6 +3790,8 @@ pub impl Parser {
                 vis: public,
             });
 
+            self.obsolete(*self.last_span, ObsoleteNewtypeEnum);
+
             return (
                 id,
                 item_enum(