Skip to content

Commit 1c0e48f

Browse files
iamthiagoThiago Pereira
authored andcommitted
Add error message IdentifierExpected
This commit adds the semantic object fir the ```identifier expected``` error. It is part of the #1589
1 parent 9f3005c commit 1c0e48f

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

src/dotty/tools/dotc/parsing/JavaParsers.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import Symbols._
2121
import ast.Trees._
2222
import Decorators._
2323
import StdNames._
24+
import dotty.tools.dotc.reporting.diagnostic.messages.IdentifierExpected
2425
import dotty.tools.dotc.util.SourceFile
2526
import util.Positions._
2627
import annotation.switch
@@ -230,7 +231,7 @@ object JavaParsers {
230231
case AppliedTypeTree(_, _) | Select(_, _) =>
231232
tree
232233
case _ =>
233-
syntaxError("identifier expected", tree.pos)
234+
syntaxError(IdentifierExpected(tree.show), tree.pos)
234235
errorTypeTree
235236
}
236237
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ object Parsers {
316316
case id @ Select(qual, name) =>
317317
cpy.Select(id)(qual, name.toTypeName)
318318
case _ =>
319-
syntaxError("identifier expected", tree.pos)
319+
syntaxError(IdentifierExpected(tree.show), tree.pos)
320320
tree
321321
}
322322

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,4 +691,28 @@ object messages {
691691
|${s"trait A[${mods.flags} type $identifier]"}
692692
|""".stripMargin
693693
}
694+
695+
case class IdentifierExpected(identifier: String)(implicit ctx: Context) extends Message(25) {
696+
val kind = "Syntax"
697+
698+
val msg = "identifier expected"
699+
700+
val wrongIdentifier = s"def foo: $identifier = {...}"
701+
702+
val validIdentifier = s"def foo = {...}"
703+
704+
val explanation = {
705+
hl"""|A valid identifier expected, but `$identifier` found.
706+
|Let the compiler infer the type for you.
707+
|For example, instead of:
708+
|
709+
|$wrongIdentifier
710+
|
711+
|Write your code like:
712+
|
713+
|$validIdentifier
714+
|
715+
|""".stripMargin
716+
}
717+
}
694718
}

0 commit comments

Comments
 (0)