File tree Expand file tree Collapse file tree 1 file changed +3
-2
lines changed
src/dotty/tools/dotc/transform Expand file tree Collapse file tree 1 file changed +3
-2
lines changed Original file line number Diff line number Diff line change @@ -150,7 +150,8 @@ class Mixin extends MiniPhaseTransform with SymTransformer { thisTransform =>
150150 def traitInits (mixin : ClassSymbol ): List [Tree ] =
151151 for (getter <- mixin.info.decls.filter(getr => getr.isGetter && ! wasDeferred(getr)).toList)
152152 yield {
153- DefDef (implementation(getter.asTerm), superRef(initializer(getter)).appliedToNone)
153+ // transformFollowing call is needed to make memoize & lazy vals run
154+ transformFollowing(DefDef (implementation(getter.asTerm), superRef(initializer(getter)).appliedToNone))
154155 }
155156
156157 def setters (mixin : ClassSymbol ): List [Tree ] =
@@ -163,7 +164,7 @@ class Mixin extends MiniPhaseTransform with SymTransformer { thisTransform =>
163164 if (cls is Trait ) traitDefs(impl.body)
164165 else {
165166 val mixInits = mixins.flatMap { mixin =>
166- traitInits(mixin) ::: superCallOpt(mixin) ::: setters(mixin)
167+ flatten( traitInits(mixin) ) ::: superCallOpt(mixin) ::: setters(mixin)
167168 }
168169 superCallOpt(superCls) ::: mixInits ::: impl.body
169170 })
You can’t perform that action at this time.
0 commit comments