File tree 4 files changed +12
-3
lines changed
test/dotty/tools/dotc/reporting
4 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -131,7 +131,8 @@ public enum ErrorMessageID {
131
131
MatchCaseOnlyNullWarningID ,
132
132
ImportRenamedTwiceID ,
133
133
TypeTestAlwaysSucceedsID ,
134
- TermMemberNeedsNeedsResultTypeForImplicitSearchID
134
+ TermMemberNeedsNeedsResultTypeForImplicitSearchID ,
135
+ CaseClassCannotExtendEnumID
135
136
;
136
137
137
138
public int errorNumber () {
Original file line number Diff line number Diff line change @@ -2120,4 +2120,10 @@ object messages {
2120
2120
|To avoid this error, give ` $cycleSym` an explicit type.
2121
2121
| """ .stripMargin
2122
2122
}
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
+ }
2123
2129
}
Original file line number Diff line number Diff line change @@ -853,7 +853,7 @@ trait Checking {
853
853
cls.owner.isTerm &&
854
854
(cls.owner.flagsUNSAFE.is(Case ) || cls.owner.name == nme.DOLLAR_NEW )
855
855
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)
857
857
}
858
858
859
859
/** 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 {
30
30
implicit val ctx : Context = ictx
31
31
assertMessageCount(1 , messages)
32
32
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)
34
36
}
35
37
36
38
@ Test def typeMismatch =
You can’t perform that action at this time.
0 commit comments