Skip to content

Commit 5cb4a1a

Browse files
authored
Merge pull request #6002 from dotty-staging/fix-5015
Fix #5015: disallow empty enum definition
2 parents 5be809b + 7edf491 commit 5cb4a1a

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

compiler/src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2556,6 +2556,11 @@ object Parsers {
25562556
val clsName = modName.toTypeName
25572557
val constr = classConstr()
25582558
val templ = templateOpt(constr, isEnum = true)
2559+
templ match {
2560+
case Template(_, _, _, List(EmptyTree)) =>
2561+
syntaxError("enum body should not be empty.", start)
2562+
case _ =>
2563+
}
25592564
finalizeDef(TypeDef(clsName, templ), addMod(mods, enumMod), start)
25602565
}
25612566

compiler/test/dotty/tools/dotc/reporting/ErrorMessagesTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class ErrorMessagesTests extends ErrorMessagesTest {
2222
@Test def caseClassExtendsEnum =
2323
checkMessagesAfter(RefChecks.name) {
2424
"""
25-
|enum Foo {}
25+
|enum Foo { case A, B }
2626
|case class Bar() extends Foo
2727
""".stripMargin
2828
}

tests/neg/i5015.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
enum A extends AnyRef { } // error

0 commit comments

Comments
 (0)