We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents 96af022 + c43d387 commit 0e01547Copy full SHA for 0e01547
compiler/src/dotty/tools/dotc/typer/Typer.scala
@@ -668,7 +668,9 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
668
if ctx.mode.is(Mode.Pattern)
669
&& !tree.isType
670
&& !pt.isInstanceOf[ApplyingProto]
671
- && !tree.tpe.isStable
+ && !tree.tpe.match
672
+ case tp: NamedType => tp.denot.hasAltWith(_.symbol.isStableMember && tp.prefix.isStable || tp.info.isStable)
673
+ case tp => tp.isStable
674
&& !isWildcardArg(tree)
675
then
676
report.error(StableIdentPattern(tree, pt), tree.srcPos)
tests/pos/i18247.scala
@@ -0,0 +1,10 @@
1
+sealed trait Op
2
+object Op {
3
+ case object `==` extends Op
4
+}
5
+
6
+def t1(a: Op): true = {
7
+ a match {
8
+ case Op.`==` => true // was: won't compile
9
+ }
10
0 commit comments