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 =>
150
150
def traitInits (mixin : ClassSymbol ): List [Tree ] =
151
151
for (getter <- mixin.info.decls.filter(getr => getr.isGetter && ! wasDeferred(getr)).toList)
152
152
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))
154
155
}
155
156
156
157
def setters (mixin : ClassSymbol ): List [Tree ] =
@@ -163,7 +164,7 @@ class Mixin extends MiniPhaseTransform with SymTransformer { thisTransform =>
163
164
if (cls is Trait ) traitDefs(impl.body)
164
165
else {
165
166
val mixInits = mixins.flatMap { mixin =>
166
- traitInits(mixin) ::: superCallOpt(mixin) ::: setters(mixin)
167
+ flatten( traitInits(mixin) ) ::: superCallOpt(mixin) ::: setters(mixin)
167
168
}
168
169
superCallOpt(superCls) ::: mixInits ::: impl.body
169
170
})
You can’t perform that action at this time.
0 commit comments