File tree Expand file tree Collapse file tree 3 files changed +27
-2
lines changed Expand file tree Collapse file tree 3 files changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ import Symbols._
2121import ast .Trees ._
2222import Decorators ._
2323import StdNames ._
24+ import dotty .tools .dotc .reporting .diagnostic .messages .IdentifierExpected
2425import dotty .tools .dotc .util .SourceFile
2526import util .Positions ._
2627import 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 }
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments