File tree Expand file tree Collapse file tree 4 files changed +12
-3
lines changed
test/dotty/tools/dotc/reporting Expand file tree Collapse file tree 4 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -131,7 +131,8 @@ public enum ErrorMessageID {
131131 MatchCaseOnlyNullWarningID ,
132132 ImportRenamedTwiceID ,
133133 TypeTestAlwaysSucceedsID ,
134- TermMemberNeedsNeedsResultTypeForImplicitSearchID
134+ TermMemberNeedsNeedsResultTypeForImplicitSearchID ,
135+ CaseClassCannotExtendEnumID
135136 ;
136137
137138 public int errorNumber () {
Original file line number Diff line number Diff line change @@ -2120,4 +2120,10 @@ object messages {
21202120 |To avoid this error, give ` $cycleSym` an explicit type.
21212121 | """ .stripMargin
21222122 }
2123+
2124+ case class CaseClassCannotExtendEnum (cls : Symbol )(implicit ctx : Context ) extends Message (CaseClassCannotExtendEnumID ) {
2125+ override def kind : String = " Syntax"
2126+ override def msg : String = hl """ normal case $cls in ${cls.owner} cannot extend an enum """
2127+ override def explanation : String = " "
2128+ }
21232129}
Original file line number Diff line number Diff line change @@ -853,7 +853,7 @@ trait Checking {
853853 cls.owner.isTerm &&
854854 (cls.owner.flagsUNSAFE.is(Case ) || cls.owner.name == nme.DOLLAR_NEW )
855855 if (! cdef.mods.isEnumCase && ! isEnumAnonCls)
856- ctx.error(em " normal case $ cls in ${cls.owner} cannot extend an enum " , cdef.pos)
856+ ctx.error(CaseClassCannotExtendEnum ( cls) , cdef.pos)
857857 }
858858
859859 /** Check that all references coming from enum cases in an enum companion object
Original file line number Diff line number Diff line change @@ -30,7 +30,9 @@ class ErrorMessagesTests extends ErrorMessagesTest {
3030 implicit val ctx : Context = ictx
3131 assertMessageCount(1 , messages)
3232 val errorMsg = messages.head
33- assertEquals(" normal case class Bar in package <empty> cannot extend an enum" , errorMsg.msg)
33+ val CaseClassCannotExtendEnum (cls) :: Nil = messages
34+ assertEquals(" Bar" , cls.name.show)
35+ assertEquals(" <empty>" , cls.owner.name.show)
3436 }
3537
3638 @ Test def typeMismatch =
You can’t perform that action at this time.
0 commit comments