aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/parsing/Parsers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-02-08 21:10:58 +1100
committerMartin Odersky <odersky@gmail.com>2017-04-04 13:20:45 +0200
commitfe14afb67ecfeef0c7d6bc6588a1ec1c04b21fb8 (patch)
tree0c236f39f0496553b988b329e10c44639220e7eb /compiler/src/dotty/tools/dotc/parsing/Parsers.scala
parentca039bae393a1d32720d6517baae434b91eefefd (diff)
downloaddotty-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.scala9
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