Skip to content

Commit 7779b8f

Browse files
committed
Refine definition of isCurrent
Fixes problem with run/t261.scala.
1 parent 05679f3 commit 7779b8f

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,10 @@ class Mixin extends MiniPhaseTransform with SymTransformer { thisTransform =>
152152
def traitInits(mixin: ClassSymbol): List[Tree] =
153153
for (getter <- mixin.info.decls.filter(getr => getr.isGetter && !wasDeferred(getr)).toList)
154154
yield {
155-
// transformFollowing call is needed to make memoize & lazy vals run
155+
// transformFollowing call is needed to make memoize & lazy vals run
156156
val rhs = transformFollowing(superRef(initializer(getter)).appliedToNone)
157-
val isCurrent = ctx.atPhase(thisTransform) { implicit ctx =>
157+
// isCurrent: getter is a member of implementing class
158+
val isCurrent = getter.is(ExpandedName) || ctx.atPhase(thisTransform) { implicit ctx =>
158159
cls.info.member(getter.name).suchThat(_.isGetter).symbol == getter
159160
}
160161
if (isCurrent) transformFollowing(DefDef(implementation(getter.asTerm), rhs))

0 commit comments

Comments
 (0)