@@ -627,31 +627,31 @@ public final class VirtualMachine: TrackedObject {
627627 let stackTrace = self . getStackTrace ( )
628628 var builder = StringBuilder ( )
629629 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 ,
632632 alignRight: true )
633- builder. append ( proc. originalName ?? proc. name)
633+ builder. append ( " ( " , proc. originalName ?? proc. name)
634634 for i in 0 ..< n {
635635 builder. append ( " " , self . stack [ self . sp &- n &+ i] . description)
636636 }
637637 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)
640640 }
641641 builder. append ( " \n " )
642642 self . context. console. print ( builder. description)
643643 }
644644 }
645645 }
646646
647- @inline ( __always) private func printReturnTrace( tailCall: Bool = false ) {
647+ @inline ( __always) private func printReturnTrace( tailCall: Bool = false , noOffset : Bool = false ) {
648648 if self . traceCalls && self . sp > 0 {
649649 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 ,
653653 alignRight: true )
654- builder. append ( self . stack [ self . sp &- 1 ] . description)
654+ builder. append ( " " , self . stack [ self . sp &- 1 ] . description)
655655 builder. append ( " \n " )
656656 self . context. console. print ( builder. description)
657657 }
@@ -1315,7 +1315,7 @@ public final class VirtualMachine: TrackedObject {
13151315 self . sp = self . registers. initialFp &- 1
13161316 return res
13171317 } else {
1318- self . printReturnTrace ( tailCall: false )
1318+ self . printReturnTrace ( tailCall: false , noOffset : true )
13191319 self . exitFrame ( )
13201320 }
13211321 case . branch( let offset) :
0 commit comments