Skip to content

Commit 9ffa984

Browse files
stable identifier message
1 parent 9b192c4 commit 9ffa984

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@ public enum ErrorMessageID {
141141
LazyStaticFieldID,
142142
StaticOverridingNonStaticMembersID,
143143
OverloadInRefinementID,
144-
NoMatchingOverloadID
144+
NoMatchingOverloadID,
145+
StableIdentPatternID
145146
;
146147

147148
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
@@ -2191,4 +2191,12 @@ object messages {
21912191
val kind: String = "Type Mismatch"
21922192
val explanation: String = ""
21932193
}
2194+
case class StableIdentPattern(tree: untpd.Tree, pt: Type)(implicit val ctx: Context)
2195+
extends Message(StableIdentPatternID) {
2196+
override def kind: String = "Syntax"
2197+
override def msg: String = {
2198+
hl"""|Stable identifier required, but ${tree.show} found"""
2199+
}
2200+
override def explanation: String = ""
2201+
}
21942202
}

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ class Typer extends Namer
414414
!pt.isInstanceOf[ApplyingProto] &&
415415
!tree.tpe.isStable &&
416416
!isWildcardArg(tree))
417-
ctx.error(s"stable identifier required, but ${tree.show} found", tree.pos)
417+
ctx.error(StableIdentPattern(tree, pt), tree.pos)
418418

419419
tree
420420
}

0 commit comments

Comments
 (0)