@@ -92,7 +92,7 @@ object Semantic {
92
92
*
93
93
* We need to restrict nesting levels of `outer` to finitize the domain.
94
94
*/
95
- case class Warm (klass : ClassSymbol , outer : Value , args : List [Value ])(using Heap ) extends Ref {
95
+ case class Warm (klass : ClassSymbol , outer : Value , ctor : Symbol , args : List [Value ])(using Heap ) extends Ref {
96
96
val objekt = getCachedObject()
97
97
98
98
private def getCachedObject ()(using Heap ) =
@@ -492,7 +492,7 @@ object Semantic {
492
492
Result (Hot , Errors .empty)
493
493
else
494
494
val outer = Hot
495
- val value = Warm (klass, outer, args2)
495
+ val value = Warm (klass, outer, ctor, args2)
496
496
val task = ThisRef (klass, outer, ctor, args2)
497
497
this .addTask(task)
498
498
Result (value, Errors .empty)
@@ -505,11 +505,11 @@ object Semantic {
505
505
given Trace = trace1
506
506
// widen the outer to finitize addresses
507
507
val outer = ref match
508
- case Warm (_, _ : Warm , _) => Cold
508
+ case Warm (_, _ : Warm , _, _ ) => Cold
509
509
case _ => ref
510
510
511
511
val argsWidened = args.map(_.value).widenArgs
512
- val value = Warm (klass, outer, argsWidened)
512
+ val value = Warm (klass, outer, ctor, argsWidened)
513
513
val task = ThisRef (klass, outer, ctor, argsWidened)
514
514
this .addTask(task)
515
515
Result (value, Errors .empty)
@@ -1192,6 +1192,7 @@ object Semantic {
1192
1192
1193
1193
// initialize super classes after outers are set
1194
1194
tasks.foreach(task => task())
1195
+ end if
1195
1196
1196
1197
var fieldsChanged = true
1197
1198
0 commit comments