aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/transform/LazyVals.scala7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/LazyVals.scala b/src/dotty/tools/dotc/transform/LazyVals.scala
index 1564d4dfe..b10e08a96 100644
--- a/src/dotty/tools/dotc/transform/LazyVals.scala
+++ b/src/dotty/tools/dotc/transform/LazyVals.scala
@@ -22,6 +22,7 @@ import scala.collection.mutable.ListBuffer
import dotty.tools.dotc.core.Denotations.SingleDenotation
import dotty.tools.dotc.core.SymDenotations.SymDenotation
import dotty.tools.dotc.core.DenotTransformers.{SymTransformer, IdentityDenotTransformer, DenotTransformer}
+import Erasure.Boxing.adaptToType
class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
import LazyVals._
@@ -103,8 +104,10 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
val flag = ref(holderSymbol).select(nme_initialized)
val initer = valueInitter.changeOwner(x.symbol, initSymbol)
val initBody =
- ref(holderSymbol).select(defn.Object_synchronized).appliedTo(
- mkNonThreadSafeDef(result, flag, initer)).ensureConforms(tpe)
+ adaptToType(
+ ref(holderSymbol).select(defn.Object_synchronized).appliedTo(
+ adaptToType(mkNonThreadSafeDef(result, flag, initer), defn.ObjectType)),
+ tpe)
val initTree = DefDef(initSymbol, initBody)
val holderTree = ValDef(holderSymbol, New(holderImpl.typeRef, List()))
val methodBody = {