diff options
author | alandonovan <adonovan@google.com> | 2018-07-02 12:30:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-02 12:30:24 -0400 |
commit | cc7dbc2bbe95ffaf3958a80556cd7e7d06d9a395 (patch) | |
tree | cd7c83fc789ef8de9b4d755ca63d61ad94144ff4 /eval_test.go | |
parent | a21eb0f4b7c744457dc92d7ec27ea72924b45fbd (diff) | |
download | starlark-go-cc7dbc2bbe95ffaf3958a80556cd7e7d06d9a395.tar.gz |
Builtin: push a Frame on the Thread's stack even when calling Builtins (#112)
* Builtin: push a Frame on the Thread's stack even when calling Builtins
This makes the stack trace more accurate.
Breaking API change: (*Frame).Function is superseded by (*Frame).Callable.
Diffstat (limited to 'eval_test.go')
-rw-r--r-- | eval_test.go | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/eval_test.go b/eval_test.go index 500c77d..8edd8c0 100644 --- a/eval_test.go +++ b/eval_test.go @@ -322,7 +322,7 @@ f() print := func(thread *skylark.Thread, msg string) { caller := thread.Caller() fmt.Fprintf(buf, "%s: %s: %s\n", - caller.Position(), caller.Function().Name(), msg) + caller.Position(), caller.Callable().Name(), msg) } thread := &skylark.Thread{Print: print} if _, err := skylark.ExecFile(thread, "foo.go", src, nil); err != nil { @@ -420,17 +420,18 @@ def i(): return h() i() ` thread := new(skylark.Thread) - _, err := skylark.ExecFile(thread, "crash.go", src, nil) + _, err := skylark.ExecFile(thread, "crash.sky", src, nil) switch err := err.(type) { case *skylark.EvalError: got := err.Backtrace() // Compiled code currently has no column information. const want = `Traceback (most recent call last): - crash.go:6: in <toplevel> - crash.go:5: in i - crash.go:4: in h - crash.go:3: in g - crash.go:2: in f + crash.sky:6: in <toplevel> + crash.sky:5: in i + crash.sky:4: in h + <builtin>:1: in min + crash.sky:3: in g + crash.sky:2: in f Error: floored division by zero` if got != want { t.Errorf("error was %s, want %s", got, want) |