diff options
author | Martin Odersky <odersky@gmail.com> | 2017-02-08 21:10:58 +1100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2017-04-04 13:20:45 +0200 |
commit | fe14afb67ecfeef0c7d6bc6588a1ec1c04b21fb8 (patch) | |
tree | 0c236f39f0496553b988b329e10c44639220e7eb /compiler/src/dotty/tools/dotc/parsing/Parsers.scala | |
parent | ca039bae393a1d32720d6517baae434b91eefefd (diff) | |
download | dotty-fe14afb67ecfeef0c7d6bc6588a1ec1c04b21fb8.tar.gz dotty-fe14afb67ecfeef0c7d6bc6588a1ec1c04b21fb8.tar.bz2 dotty-fe14afb67ecfeef0c7d6bc6588a1ec1c04b21fb8.zip |
Simplify syntax
`enum' only allowed as a prefix of classes, dropped from traits and objects.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/parsing/Parsers.scala')
-rw-r--r-- | compiler/src/dotty/tools/dotc/parsing/Parsers.scala | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala index 1084b5784..7ec44e342 100644 --- a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala +++ b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala @@ -2044,8 +2044,8 @@ object Parsers { } } - /** TmplDef ::= ([`case' | `enum]'] ‘class’ | [`enum'] trait’) ClassDef - * | [`case' | `enum'] `object' ObjectDef + /** TmplDef ::= ([`case' | `enum]'] ‘class’ | trait’) ClassDef + * | [`case'] `object' ObjectDef * | `enum' EnumDef */ def tmplDef(start: Int, mods: Modifiers): Tree = { @@ -2062,10 +2062,7 @@ object Parsers { objectDef(start, posMods(start, mods | Case | Module)) case ENUM => val mods1 = addMod(mods, atPos(in.skipToken()) { Mod.Enum() }) - in.token match { - case CLASS | TRAIT | OBJECT => tmplDef(start, mods1) - case _ => enumDef(start, mods) - } + if (in.token == CLASS) tmplDef(start, mods1) else enumDef(start, mods) case _ => syntaxErrorOrIncomplete("expected start of definition") EmptyTree |