• Rob Pike's avatar
    fmt: treat reflect.Value specially - as the value it holds · 049b89dc
    Rob Pike authored
    When a reflect.Value is passed to Printf (etc.), fmt called the
    String method, which does not disclose its contents. To get the
    contents, one could call Value.Interface(), but that is illegal
    if the Value is not exported or otherwise forbidden.
    
    This CL improves the situation with a trivial change to the
    fmt package: when we see a reflect.Value as an argument,
    we treat it exactly as we treat a reflect.Value we make inside
    the package. This means that we always print the
    contents of the Value as if _that_ was the argument to Printf.
    
    This is arguably a breaking change but I think it is a genuine
    improvement and no greater a break than many other tweaks
    we have made to formatted output from this package.
    
    Fixes #8965.
    
    Change-Id: Ifc2a4ce3c1134ad5160e101d2196c22f1542faab
    Reviewed-on: https://go-review.googlesource.com/8731Reviewed-by: 's avatarroger peppe <rogpeppe@gmail.com>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    049b89dc
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...
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...
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...
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...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc 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...