From dfffc7a5d5b9436ce5c1c59cda53d19393fa7041 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Thu, 14 Jul 2011 11:32:06 +1000 Subject: [PATCH] exp/template: include function name in error returned by function or method call. R=golang-dev, rsc, r CC=golang-dev https://golang.org/cl/4711049 --- src/pkg/exp/template/exec.go | 2 +- src/pkg/exp/template/exec_test.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pkg/exp/template/exec.go b/src/pkg/exp/template/exec.go index a7af9b496b0..6b0758045de 100644 --- a/src/pkg/exp/template/exec.go +++ b/src/pkg/exp/template/exec.go @@ -455,7 +455,7 @@ func (s *state) evalCall(dot, fun reflect.Value, name string, args []node, final result := fun.Call(argv) // If we have an os.Error that is not nil, stop execution and return that error to the caller. if len(result) == 2 && !result[1].IsNil() { - s.error(result[1].Interface().(os.Error)) + s.errorf("error calling %s: %s", name, result[1].Interface().(os.Error)) } return result[0] } diff --git a/src/pkg/exp/template/exec_test.go b/src/pkg/exp/template/exec_test.go index 7e0301c8d84..112adbf2461 100644 --- a/src/pkg/exp/template/exec_test.go +++ b/src/pkg/exp/template/exec_test.go @@ -395,6 +395,9 @@ func TestExecuteError(t *testing.T) { if err == nil { t.Errorf("expected error; got none") } else if !strings.Contains(err.String(), os.EPERM.String()) { + if *debug { + fmt.Printf("test execute error: %s\n", err) + } t.Errorf("expected os.EPERM; got %s", err) } }