Skip to content

Commit a2a41ac

Browse files
authored
Merge pull request #2919 from lorandszakacs/errmsg/lorandszakacs_parser_2177
#1589 Move Parsers:2177 err to new format
2 parents e344bd9 + 72c123d commit a2a41ac

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2183,7 +2183,7 @@ object Parsers {
21832183
if (in.token == CLASS) tmplDef(start, addMod(mods, enumMod))
21842184
else enumDef(start, mods, enumMod)
21852185
case _ =>
2186-
syntaxErrorOrIncomplete("expected start of definition")
2186+
syntaxErrorOrIncomplete(ExpectedStartOfTopLevelDefinition())
21872187
EmptyTree
21882188
}
21892189
}

compiler/src/dotty/tools/dotc/reporting/diagnostic/ErrorMessageID.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public enum ErrorMessageID {
9595
ImplicitFunctionTypeNeedsNonEmptyParameterListID,
9696
WrongNumberOfParametersID,
9797
DuplicatePrivateProtectedQualifierID,
98+
ExpectedStartOfTopLevelDefinitionID,
9899
;
99100

100101
public int errorNumber() {

compiler/src/dotty/tools/dotc/reporting/diagnostic/messages.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,4 +1702,12 @@ object messages {
17021702
hl"It is not allowed to combine `private` and `protected` modifiers even if they are qualified to different scopes"
17031703
}
17041704

1705+
case class ExpectedStartOfTopLevelDefinition()(implicit ctx: Context)
1706+
extends Message(ExpectedStartOfTopLevelDefinitionID) {
1707+
val kind = "Syntax"
1708+
val msg = "expected start of definition"
1709+
val explanation =
1710+
hl"you have to provide either ${"class"}, ${"trait"}, ${"object"}, or ${"enum"} definitions after qualifiers"
1711+
}
1712+
17051713
}

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -926,4 +926,18 @@ class ErrorMessagesTests extends ErrorMessagesTest {
926926

927927
assertEquals(DuplicatePrivateProtectedQualifier(), err)
928928
}
929+
930+
@Test def expectedStartOfTopLevelDefinition =
931+
checkMessagesAfter("frontend") {
932+
"""private Test {}"""
933+
}
934+
.expect { (ictx, messages) =>
935+
implicit val ctx: Context = ictx
936+
val defn = ictx.definitions
937+
938+
assertMessageCount(1, messages)
939+
val err :: Nil = messages
940+
941+
assertEquals(ExpectedStartOfTopLevelDefinition(), err)
942+
}
929943
}

0 commit comments

Comments
 (0)