Skip to content

Commit a159f71

Browse files
committed
Fixing owner releated error in lazy vals.
When lazy val body is moved to a init method the owner of symbols in tree should change
1 parent 02c98aa commit a159f71

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class LazyValTranformContext {
105105
val holderImpl = ctx.requiredClass("dotty.runtime." + holderType)
106106

107107
val holderSymbol = ctx.newSymbol(x.symbol.owner, holderName, containerFlags, holderImpl.typeRef, coord = x.symbol.coord)
108-
val holderTree = ValDef(holderSymbol, New(holderImpl.typeRef, List(valueInitter)))
108+
val holderTree = ValDef(holderSymbol, New(holderImpl.typeRef, List(valueInitter.changeOwner(x.symbol, holderSymbol))))
109109
val methodBody = {
110110
val prefix = ref(holderSymbol).select("value".toTermName)
111111
if (holderType != "LazyRef") prefix

0 commit comments

Comments
 (0)