Skip to content

Commit 7879c41

Browse files
stable identifier message
1 parent ceafaed commit 7879c41

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-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
@@ -139,7 +139,8 @@ public enum ErrorMessageID {
139139
PureExpressionInStatementPositionID,
140140
TraitCompanionWithMutableStaticID,
141141
LazyStaticFieldID,
142-
StaticOverridingNonStaticMembersID
142+
StaticOverridingNonStaticMembersID,
143+
StableIdentPatternID
143144
;
144145

145146
public int errorNumber() {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2170,4 +2170,13 @@ object messages {
21702170
override def kind: String = "Syntax"
21712171
override def explanation: String = ""
21722172
}
2173+
2174+
case class StableIdentPattern(tree: untpd.Tree, pt: Type)(implicit val ctx: Context)
2175+
extends Message(StableIdentPatternID) {
2176+
override def kind: String = "Syntax"
2177+
override def msg: String = {
2178+
hl"""|Stable identifier required, but ${tree.show} found"""
2179+
}
2180+
override def explanation: String = ""
2181+
}
21732182
}

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

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

423423
tree
424424
}

0 commit comments

Comments
 (0)