From: Rob Pike Date: Tue, 21 Mar 2017 03:18:02 +0000 (-0700) Subject: text/template,html/template: state that Funcs must happen before parsing X-Git-Tag: go1.9beta1~1070 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5c5a10690e56bf127832b98d73c83720e0093eef;p=gostls13.git text/template,html/template: state that Funcs must happen before parsing Any method that affects the parse must happen before parsing. This obvious point is clear, but it's not clear to some that the set of defined functions affect the parse. Fixes #18971 Change-Id: I8b7f8c8cf85b028c18e5ca3b9797de92ea910669 Reviewed-on: https://go-review.googlesource.com/38413 Reviewed-by: Ian Lance Taylor --- diff --git a/src/html/template/template.go b/src/html/template/template.go index b313a6b104..e1f179abc2 100644 --- a/src/html/template/template.go +++ b/src/html/template/template.go @@ -325,6 +325,7 @@ func (t *Template) Name() string { type FuncMap map[string]interface{} // Funcs adds the elements of the argument map to the template's function map. +// It must be called before the template is parsed. // It panics if a value in the map is not a function with appropriate return // type. However, it is legal to overwrite elements of the map. The return // value is the template, so calls can be chained. diff --git a/src/text/template/template.go b/src/text/template/template.go index b6fceb1795..ed1ef3cf8d 100644 --- a/src/text/template/template.go +++ b/src/text/template/template.go @@ -159,6 +159,7 @@ func (t *Template) Delims(left, right string) *Template { } // Funcs adds the elements of the argument map to the template's function map. +// It must be called before the template is parsed. // It panics if a value in the map is not a function with appropriate return // type or if the name cannot be used syntactically as a function in a template. // It is legal to overwrite elements of the map. The return value is the template,