• Ian Lance Taylor's avatar
    html/template: ignore untyped nil arguments to default escapers · c5cb4843
    Ian Lance Taylor authored
    CL 95215 changed text/template so that untyped nil arguments were no
    longer ignored, but were instead passed to functions as expected.
    This had an unexpected effect on html/template, where all data is
    implicitly passed to functions: originally untyped nil arguments were
    not passed and were thus effectively ignored, but after CL 95215 they
    were passed and were printed, typically as an escaped version of "<nil>".
    
    This CL restores some of the behavior of html/template by ignoring
    untyped nil arguments passed implicitly to escaper functions.
    
    While eliminating one change to html/template relative to earlier
    releases, this unfortunately introduces a different one: originally
    values of interface type with the value nil were printed as an escaped
    version of "<nil>". With this CL they are ignored as though they were
    untyped nil values. My judgement is that this is a less common case.
    We'll see.
    
    This CL adds some tests of typed and untyped nil values to
    html/template and text/template to capture the current behavior.
    
    Updates #18716
    Fixes #25875
    
    Change-Id: I5912983ca32b31ece29e929e72d503b54d7b0cac
    Reviewed-on: https://go-review.googlesource.com/121815
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: 's avatarDaniel Martí <mvdan@mvdan.cc>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    c5cb4843
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...