From 58fafaeb5ce3ae0cdf0399dab392d24c2322b435 Mon Sep 17 00:00:00 2001 From: Kenneth Bell Date: Mon, 11 Sep 2023 23:27:47 +0100 Subject: [PATCH] build: #3893 do not return LLVM structs from Build --- interp/errors.go | 8 ++++---- interp/interp_test.go | 8 +++----- interp/interpreter.go | 2 +- main.go | 8 +++----- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/interp/errors.go b/interp/errors.go index eaab781d53..7aad39fb8f 100644 --- a/interp/errors.go +++ b/interp/errors.go @@ -35,14 +35,14 @@ func isRecoverableError(err error) bool { // ErrorLine is one line in a traceback. The position may be missing. type ErrorLine struct { Pos token.Position - Inst llvm.Value + Inst string } // Error encapsulates compile-time interpretation errors with an associated // import path. The errors may not have a precise location attached. type Error struct { ImportPath string - Inst llvm.Value + Inst string Pos token.Position Err error Traceback []ErrorLine @@ -60,10 +60,10 @@ func (r *runner) errorAt(inst instruction, err error) *Error { pos := getPosition(inst.llvmInst) return &Error{ ImportPath: r.pkgName, - Inst: inst.llvmInst, + Inst: inst.String(), Pos: pos, Err: err, - Traceback: []ErrorLine{{pos, inst.llvmInst}}, + Traceback: []ErrorLine{{pos, inst.String()}}, } } diff --git a/interp/interp_test.go b/interp/interp_test.go index 55ad3eaef6..fc567af20f 100644 --- a/interp/interp_test.go +++ b/interp/interp_test.go @@ -57,16 +57,14 @@ func runTest(t *testing.T, pathPrefix string) { if err != nil { if err, match := err.(*Error); match { println(err.Error()) - if !err.Inst.IsNil() { - err.Inst.Dump() - println() + if len(err.Inst) != 0 { + println(err.Inst) } if len(err.Traceback) > 0 { println("\ntraceback:") for _, line := range err.Traceback { println(line.Pos.String() + ":") - line.Inst.Dump() - println() + println(line.Inst) } } } diff --git a/interp/interpreter.go b/interp/interpreter.go index 8e5faf642d..dcea0044a9 100644 --- a/interp/interpreter.go +++ b/interp/interpreter.go @@ -543,7 +543,7 @@ func (r *runner) run(fn *function, params []value, parentMem *memoryView, indent // how this function got called. callErr.Traceback = append(callErr.Traceback, ErrorLine{ Pos: getPosition(inst.llvmInst), - Inst: inst.llvmInst, + Inst: inst.String(), }) return nil, mem, callErr } diff --git a/main.go b/main.go index a11c930ba4..0a8a652b74 100644 --- a/main.go +++ b/main.go @@ -1289,16 +1289,14 @@ func printCompilerError(logln func(...interface{}), err error) { case *interp.Error: logln("#", err.ImportPath) logln(err.Error()) - if !err.Inst.IsNil() { - err.Inst.Dump() - logln() + if len(err.Inst) != 0 { + logln(err.Inst) } if len(err.Traceback) > 0 { logln("\ntraceback:") for _, line := range err.Traceback { logln(line.Pos.String() + ":") - line.Inst.Dump() - logln() + logln(line.Inst) } } case loader.Errors: