diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-09-26 23:08:25 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-10-11 06:38:12 +0200 |
commit | a159f71c1b8b4674f1ab6411d3f3ba8f2440c1bd (patch) | |
tree | cf4c7f74e033c52efa760d1a36505536fc11012a /src/dotty/tools/dotc/transform/LazyVals.scala | |
parent | 02c98aa1da9a64fdf524ce21ce0c24cbb058d750 (diff) | |
download | dotty-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.scala | 2 |
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 |