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._
21
21
import ast .Trees ._
22
22
import Decorators ._
23
23
import StdNames ._
24
+ import dotty .tools .dotc .reporting .diagnostic .messages .IdentifierExpected
24
25
import dotty .tools .dotc .util .SourceFile
25
26
import util .Positions ._
26
27
import annotation .switch
@@ -230,7 +231,7 @@ object JavaParsers {
230
231
case AppliedTypeTree (_, _) | Select (_, _) =>
231
232
tree
232
233
case _ =>
233
- syntaxError(" identifier expected " , tree.pos)
234
+ syntaxError(IdentifierExpected (tree.show) , tree.pos)
234
235
errorTypeTree
235
236
}
236
237
}
Original file line number Diff line number Diff line change @@ -316,7 +316,7 @@ object Parsers {
316
316
case id @ Select (qual, name) =>
317
317
cpy.Select (id)(qual, name.toTypeName)
318
318
case _ =>
319
- syntaxError(" identifier expected " , tree.pos)
319
+ syntaxError(IdentifierExpected (tree.show) , tree.pos)
320
320
tree
321
321
}
322
322
Original file line number Diff line number Diff line change @@ -691,4 +691,28 @@ object messages {
691
691
| ${s " trait A[ ${mods.flags} type $identifier] " }
692
692
| """ .stripMargin
693
693
}
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
+ }
694
718
}
You can’t perform that action at this time.
0 commit comments