File tree Expand file tree Collapse file tree 3 files changed +16
-3
lines changed
test/dotty/tools/dotc/reporting Expand file tree Collapse file tree 3 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ object DesugarEnums {
3333 /** Is enum case `tree` situated in a companion object of an enum class? */
3434 def enumCaseIsLegal (tree : Tree )(implicit ctx : Context ): Boolean = (
3535 ctx.owner.is(ModuleClass ) && enumClass.derivesFrom(defn.EnumClass )
36- || { ctx.error(EnumCaseDefinitionInNonEnumOwner (), tree.pos)
36+ || { ctx.error(EnumCaseDefinitionInNonEnumOwner (ctx.owner ), tree.pos)
3737 false
3838 }
3939 )
Original file line number Diff line number Diff line change @@ -1758,10 +1758,10 @@ object messages {
17581758 | """
17591759 }
17601760
1761- case class EnumCaseDefinitionInNonEnumOwner ()(implicit ctx : Context )
1761+ case class EnumCaseDefinitionInNonEnumOwner (owner : Symbol )(implicit ctx : Context )
17621762 extends Message (EnumCaseDefinitionInNonEnumOwnerID ) {
17631763 val kind = " Syntax"
1764- val msg = em " case not allowed here, since owner ${ctx. owner} is not an `enum' object "
1764+ val msg = em " case not allowed here, since owner ${owner} is not an `enum' object "
17651765 val explanation = {
17661766
17671767 hl """
Original file line number Diff line number Diff line change @@ -998,4 +998,17 @@ class ErrorMessagesTests extends ErrorMessagesTest {
998998 val ReturnOutsideMethodDefinition (owner) :: Nil = messages
999999 assertEquals(" object A" , owner.show)
10001000 }
1001+
1002+ @ Test def enumCaseDefinitionInNonEnumOwner =
1003+ checkMessagesAfter(" frontend" ) {
1004+ """ object Qux {
1005+ | case Foo
1006+ |}
1007+ """ .stripMargin
1008+ }.expect { (ictx, messages) =>
1009+ implicit val ctx : Context = ictx
1010+ assertMessageCount(1 , messages)
1011+ val EnumCaseDefinitionInNonEnumOwner (owner) :: Nil = messages
1012+ assertEquals(" object Qux" , owner.show)
1013+ }
10011014}
You can’t perform that action at this time.
0 commit comments