go fix my shit
All checks were successful
/ test (push) Successful in 51s

This commit is contained in:
Neemek 2026-09-23 09:13:28 +02:00
parent 0db420aae4
commit 7245af0438
Signed by: neemek
GPG key ID: 433EA4A50D4F55A3
5 changed files with 35 additions and 30 deletions

View file

@ -3,6 +3,7 @@ package core
import (
"errors"
"fmt"
"slices"
"strings"
)
@ -116,8 +117,7 @@ func (e CompilerError) Format() string {
b.WriteString("\nsource trace:")
// print import stack trace
for i := len(e.Trace) - 1; i >= 0; i-- {
p := e.Trace[i]
for i, p := range slices.Backward(e.Trace) {
b.WriteString(fmt.Sprintf("\n[%d] %s", i, p))
}
@ -180,20 +180,20 @@ func (c *Compiler) Compile(p *Program) (TypeSignature, error) {
}
func EscapeString(in string) string {
out := ""
var out strings.Builder
escaped := false
for _, ch := range in {
if escaped {
switch ch {
case 'n':
out += "\n"
out.WriteRune('\n')
case 't':
out += "\t"
out.WriteRune('\t')
case 'r':
out += "\r"
out.WriteRune('\r')
default:
out += string(ch)
out.WriteString(string(ch))
}
escaped = false
continue
@ -203,11 +203,11 @@ func EscapeString(in string) string {
case '\\':
escaped = true
default:
out += string(ch)
out.WriteString(string(ch))
}
}
return out
return out.String()
}
func (c *Compiler) resolveType(value TypeSignature) TypeSignature {
@ -968,8 +968,8 @@ func (c *Compiler) compileAssignFromStack(to Node, sig TypeSignature, declare bo
c.add(InstructionDestructureTuple)
// iterate from top to bottom
for i := len(t.items) - 1; i >= 0; i-- {
_, err := c.compileAssignFromStack(t.items[i], tsig.Contents[i], declare)
for i, v := range slices.Backward(t.items) {
_, err := c.compileAssignFromStack(v, tsig.Contents[i], declare)
if err != nil {
return nil, err
}