go/src/text
Daniel Martí 618f88d847 text/template: never call reflect.Zero(nil)
It makes no sense to try to get the zero value of a nil type, hence the
panic. When we have a nil type, use reflect.ValueOf(nil) instead.

This was showing itself if one used a missing field on the data between
parentheses, when the data was a nil interface:

	t := template.Must(template.New("test").Parse(`{{ (.).foo }}`))
	var v interface{}
	t.Execute(os.Stdout, v)

Resulting in:

	panic: reflect: Zero(nil) [recovered]
		panic: reflect: Zero(nil)

Fixes #21171.

Change-Id: Ifcc4a0c67e6df425b65bc9f82fde6fcf03828579
Reviewed-on: https://go-review.googlesource.com/84482
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
2018-02-13 22:18:21 +00:00
..
scanner text/scanner: clarify documentation on Pos and Position 2017-05-14 20:24:34 +00:00
tabwriter all: unindent some if bodies by exiting early 2017-10-31 20:07:46 +00:00
template text/template: never call reflect.Zero(nil) 2018-02-13 22:18:21 +00:00