Skip to content

Commit 683d537

Browse files
committed
Be more sensitive for values Warm(outer = ThisRef)
1 parent 4163fd3 commit 683d537

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

compiler/src/dotty/tools/dotc/transform/init/Semantic.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,10 @@ object Semantic {
188188
def prepare(heapBefore: Heap)(using State, Context) =
189189
this.map.keys.foreach {
190190
case warm: Warm if !heapBefore.contains(warm) =>
191-
this.map = this.map - warm
192191
given Env = Env.empty
193192
given Trace = Trace.empty
194193
given Promoted = Promoted.empty
195-
warm.ensureObjectExists().ensureInit()
194+
warm.ensureFresh().ensureInit()
196195
case _ =>
197196
}
198197

@@ -698,7 +697,7 @@ object Semantic {
698697
given Trace = trace1
699698
// widen the outer to finitize the domain
700699
val outer = ref match
701-
case warm @ Warm(_, _: Ref, _, _) =>
700+
case warm @ Warm(_, _: Warm, _, _) =>
702701
// the widened warm object might not exist in the heap
703702
warm.copy(outer = Cold).ensureObjectExists().ensureInit()
704703
case _ => ref

0 commit comments

Comments
 (0)