File tree 4 files changed +20
-1
lines changed
test/dotty/tools/dotc/reporting
4 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -2382,7 +2382,7 @@ object Parsers {
2382
2382
stats +++= tmplDef(in.offset, defAnnotsMods(modifierTokens))
2383
2383
else if (! isStatSep) {
2384
2384
if (in.token == CASE )
2385
- syntaxErrorOrIncomplete(" only `case class` or `case object` allowed " )
2385
+ syntaxErrorOrIncomplete(OnlyCaseClassOrCaseObjectAllowed () )
2386
2386
else
2387
2387
syntaxErrorOrIncomplete(" expected class or object definition" )
2388
2388
if (mustStartStat) // do parse all definitions even if they are probably local (i.e. a "}" has been forgotten)
Original file line number Diff line number Diff line change @@ -86,6 +86,7 @@ public enum ErrorMessageID {
86
86
ValueClassesMayNotWrapItselfID ,
87
87
ValueClassParameterMayNotBeAVarID ,
88
88
ValueClassNeedsExactlyOneValParamID ,
89
+ OnlyCaseClassOrCaseObjectAllowedID ,
89
90
;
90
91
91
92
public int errorNumber () {
Original file line number Diff line number Diff line change @@ -1566,4 +1566,11 @@ object messages {
1566
1566
val explanation = " "
1567
1567
}
1568
1568
1569
+ case class OnlyCaseClassOrCaseObjectAllowed ()(implicit ctx : Context )
1570
+ extends Message (OnlyCaseClassOrCaseObjectAllowedID ) {
1571
+ val msg = " only `case class` or `case object` allowed"
1572
+ val kind = " Syntax"
1573
+ val explanation = " "
1574
+ }
1575
+
1569
1576
}
Original file line number Diff line number Diff line change @@ -781,4 +781,15 @@ class ErrorMessagesTests extends ErrorMessagesTest {
781
781
assertEquals(" class MyValue" , valueClass.show)
782
782
}
783
783
784
+ @ Test def onlyCaseClassOrCaseObjectAllowed =
785
+ checkMessagesAfter(" frontend" ) {
786
+ """ case Foobar"""
787
+ }
788
+ .expect { (ictx, messages) =>
789
+ implicit val ctx : Context = ictx
790
+ assertMessageCount(1 , messages)
791
+ val err :: Nil = messages
792
+ assertEquals(err, OnlyCaseClassOrCaseObjectAllowed ())
793
+ }
794
+
784
795
}
You can’t perform that action at this time.
0 commit comments