• Daniel Martí's avatar
    text/template: improve nil errors in evalField · 856525ce
    Daniel Martí authored
    If we're accessing a field on a nil struct pointer, and that field is
    present in the type, we should print a "nil pointer evaluating X.Y" error
    instead of the broader "can't evaluate field Y in X". The latter error
    should still be used for the cases where the field is simply missing.
    
    While at it, remove the isNil checks in the struct and map cases. The
    indirect func will only return a true isNil when returning a pointer or
    interface reflect.Value, so it's impossible for either of these checks
    to be useful.
    
    Finally, extend the test suite to test a handful of these edge cases,
    including the one shown in the original issue.
    
    Fixes #29137.
    
    Change-Id: I53408ced8a7b53807a0a8461b6baef1cd01d25ae
    Reviewed-on: https://go-review.googlesource.com/c/153341
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarRob Pike <r@golang.org>
    856525ce
exec.go 29.4 KB