]> Cypherpunks repositories - gostls13.git/commit
text/template: better error messages during execution,
authorRob Pike <r@golang.org>
Wed, 3 Oct 2012 02:02:13 +0000 (12:02 +1000)
committerRob Pike <r@golang.org>
Wed, 3 Oct 2012 02:02:13 +0000 (12:02 +1000)
commit7f4b4c0c0092e63f28ab874f9f564ee0e0e7f4cc
tree993a2cc6221a92c782eb25a8e6c6756ee1ce1a10
parent1659aef3990377081277c48304f7b63a3ce19092
text/template: better error messages during execution,
They now show the correct name, the byte offset on the line, and context for the failed evaluation.
Before:
        template: three:7: error calling index: index out of range: 5
After:
        template: top:7:20: executing "three" at <index "hi" $>: error calling index: index out of range: 5
Here top is the template that was parsed to create the set, and the error appears with the action
starting at byte 20 of line 7 of "top", inside the template called "three", evaluating the expression
<index "hi" $>.

Also fix a bug in index: it didn't work on strings. Ouch.

Also fix bug in error for index: was showing type of index not slice.
The real previous error was:
        template: three:7: error calling index: can't index item of type int
The html/template package's errors can be improved by building on this;
I'll do that in a separate pass.

Extends the API for text/template/parse but only by addition of a field and method. The
old API still works.

Fixes #3188.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/6576058
src/pkg/html/template/escape.go
src/pkg/text/template/exec.go
src/pkg/text/template/exec_test.go
src/pkg/text/template/funcs.go
src/pkg/text/template/parse/lex.go
src/pkg/text/template/parse/node.go
src/pkg/text/template/parse/parse.go
src/pkg/text/template/parse/parse_test.go