aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/transform/LazyVals.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-09-26 23:08:25 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-10-11 06:38:12 +0200
commita159f71c1b8b4674f1ab6411d3f3ba8f2440c1bd (patch)
treecf4c7f74e033c52efa760d1a36505536fc11012a /src/dotty/tools/dotc/transform/LazyVals.scala
parent02c98aa1da9a64fdf524ce21ce0c24cbb058d750 (diff)
downloaddotty-a159f71c1b8b4674f1ab6411d3f3ba8f2440c1bd.tar.gz
dotty-a159f71c1b8b4674f1ab6411d3f3ba8f2440c1bd.tar.bz2
dotty-a159f71c1b8b4674f1ab6411d3f3ba8f2440c1bd.zip
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
Diffstat (limited to 'src/dotty/tools/dotc/transform/LazyVals.scala')
-rw-r--r--src/dotty/tools/dotc/transform/LazyVals.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/transform/LazyVals.scala b/src/dotty/tools/dotc/transform/LazyVals.scala
index 41e2c92e8..733a58c18 100644
--- a/src/dotty/tools/dotc/transform/LazyVals.scala
+++ b/src/dotty/tools/dotc/transform/LazyVals.scala
@@ -105,7 +105,7 @@ class LazyValTranformContext {
val holderImpl = ctx.requiredClass("dotty.runtime." + holderType)
val holderSymbol = ctx.newSymbol(x.symbol.owner, holderName, containerFlags, holderImpl.typeRef, coord = x.symbol.coord)
- val holderTree = ValDef(holderSymbol, New(holderImpl.typeRef, List(valueInitter)))
+ val holderTree = ValDef(holderSymbol, New(holderImpl.typeRef, List(valueInitter.changeOwner(x.symbol, holderSymbol))))
val methodBody = {
val prefix = ref(holderSymbol).select("value".toTermName)
if (holderType != "LazyRef") prefix