Skip to content

Commit 789dc0c

Browse files
committed
isDerivedValueClass: try to avoid causing cyclic references
This fixes the problem showcased in #412.
1 parent 318c685 commit 789dc0c

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/dotty/tools/dotc/transform/ValueClasses.scala

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@ import StdNames._
1313
object ValueClasses {
1414

1515
def isDerivedValueClass(d: SymDenotation)(implicit ctx: Context) =
16-
d.isClass &&
17-
d.derivesFrom(defn.AnyValClass) &&
18-
(d.symbol ne defn.AnyValClass) &&
19-
!d.isPrimitiveValueClass
16+
d.initial match {
17+
case di: ClassDenotation =>
18+
d.isClass &&
19+
di.derivesFrom(defn.AnyValClass)(ctx.withPhase(di.validFor.firstPhaseId)) &&
20+
(d.symbol ne defn.AnyValClass) &&
21+
!d.isPrimitiveValueClass
22+
case _ =>
23+
false
24+
}
2025

2126
def isMethodWithExtension(d: SymDenotation)(implicit ctx: Context) =
2227
d.isSourceMethod &&

0 commit comments

Comments
 (0)