@@ -627,31 +627,31 @@ public final class VirtualMachine: TrackedObject {
627
627
let stackTrace = self . getStackTrace ( )
628
628
var builder = StringBuilder ( )
629
629
let offset = tailCall ? 0 : 1
630
- builder. append ( tailCall ? " ↪︎ ( " : " ➝ ( " ,
631
- width: ( stackTrace. count + offset) * 2 + 3 ,
630
+ builder. append ( tailCall ? " ↪︎ " : " ⟶ " ,
631
+ width: ( stackTrace. count + offset) * 2 + 1 ,
632
632
alignRight: true )
633
- builder. append ( proc. originalName ?? proc. name)
633
+ builder. append ( " ( " , proc. originalName ?? proc. name)
634
634
for i in 0 ..< n {
635
635
builder. append ( " " , self . stack [ self . sp &- n &+ i] . description)
636
636
}
637
637
builder. append ( " ) " )
638
- if stackTrace . count > 1 {
639
- builder. append ( " in " , stackTrace . last! . originalName ?? stackTrace . last! . name)
638
+ if let currentProc = stackTrace . last {
639
+ builder. append ( " in " , currentProc . originalName ?? currentProc . name)
640
640
}
641
641
builder. append ( " \n " )
642
642
self . context. console. print ( builder. description)
643
643
}
644
644
}
645
645
}
646
646
647
- @inline ( __always) private func printReturnTrace( tailCall: Bool = false ) {
647
+ @inline ( __always) private func printReturnTrace( tailCall: Bool = false , noOffset : Bool = false ) {
648
648
if self . traceCalls && self . sp > 0 {
649
649
var builder = StringBuilder ( )
650
- let offset = tailCall ? 0 : 1
651
- builder. append ( tailCall ? " ↩︎ " : " ⃪ " ,
652
- width: ( self . getStackTrace ( ) . count + offset) * 2 + 2 ,
650
+ let offset = tailCall || noOffset ? 0 : 1
651
+ builder. append ( tailCall ? " ↩︎ " : " ⟵ " ,
652
+ width: ( self . getStackTrace ( ) . count + offset) * 2 + 1 ,
653
653
alignRight: true )
654
- builder. append ( self . stack [ self . sp &- 1 ] . description)
654
+ builder. append ( " " , self . stack [ self . sp &- 1 ] . description)
655
655
builder. append ( " \n " )
656
656
self . context. console. print ( builder. description)
657
657
}
@@ -1315,7 +1315,7 @@ public final class VirtualMachine: TrackedObject {
1315
1315
self . sp = self . registers. initialFp &- 1
1316
1316
return res
1317
1317
} else {
1318
- self . printReturnTrace ( tailCall: false )
1318
+ self . printReturnTrace ( tailCall: false , noOffset : true )
1319
1319
self . exitFrame ( )
1320
1320
}
1321
1321
case . branch( let offset) :
0 commit comments