Skip to content

Commit 0ea37b5

Browse files
committed
libsyntax: Stop parsing newtype enums
1 parent 0864885 commit 0ea37b5

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

src/libsyntax/parse/obsolete.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ pub enum ObsoleteSyntax {
5353
ObsoleteRecordPattern,
5454
ObsoleteAssertion,
5555
ObsoleteBareFnType,
56+
ObsoleteNewtypeEnum,
5657
}
5758

5859
impl to_bytes::IterBytes for ObsoleteSyntax {
@@ -165,6 +166,10 @@ pub impl Parser {
165166
"bare function type",
166167
"use `&fn` or `extern fn` instead"
167168
),
169+
ObsoleteNewtypeEnum => (
170+
"newtype enum",
171+
"instead of `enum Foo = int`, write `struct Foo(int)`"
172+
),
168173
};
169174

170175
self.report(sp, kind, kind_str, desc);

src/libsyntax/parse/parser.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ use parse::obsolete::{ObsoleteTraitBoundSeparator, ObsoleteMutOwnedPointer};
7777
use parse::obsolete::{ObsoleteMutVector, ObsoleteTraitImplVisibility};
7878
use parse::obsolete::{ObsoleteRecordType, ObsoleteRecordPattern};
7979
use parse::obsolete::{ObsoleteAssertion, ObsoleteBareFnType};
80+
use parse::obsolete::{ObsoleteNewtypeEnum};
8081
use parse::prec::{as_prec, token_to_binop};
8182
use parse::token::{can_begin_expr, is_ident, is_ident_or_path};
8283
use parse::token::{is_plain_ident, INTERPOLATED, special_idents};
@@ -3797,6 +3798,8 @@ pub impl Parser {
37973798
vis: public,
37983799
});
37993800

3801+
self.obsolete(*self.last_span, ObsoleteNewtypeEnum);
3802+
38003803
return (
38013804
id,
38023805
item_enum(

0 commit comments

Comments
 (0)