1
0
mirror of https://github.com/golang/go synced 2024-10-04 13:21:22 -06:00
go/src/reflect
Rob Pike 049b89dc6f fmt: treat reflect.Value specially - as the value it holds
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/8731
Reviewed-by: roger peppe <rogpeppe@gmail.com>
Reviewed-by: Russ Cox <rsc@golang.org>
2015-04-15 15:59:39 +00:00
..
all_test.go reflect: for struct tags, reject control chars (including tabs) in keys, 2015-02-06 02:27:27 +00:00
asm_386.s
asm_amd64.s
asm_amd64p32.s
asm_arm64.s reflect: add support for GOARCH=arm64 2015-03-16 18:46:27 +00:00
asm_arm.s
asm_ppc64x.s all: power64 is now ppc64 2014-12-05 19:13:20 -05:00
deepequal.go
example_test.go reflect: document reflect.TypeOf((*Foo)(nil)).Elem() idiom 2015-04-14 17:19:36 +00:00
export_test.go reflect: cache call frames 2015-01-28 08:40:26 +00:00
makefunc.go reflect: cache call frames 2015-01-28 08:40:26 +00:00
set_test.go
tostring_test.go
type.go reflect: document reflect.TypeOf((*Foo)(nil)).Elem() idiom 2015-04-14 17:19:36 +00:00
value.go fmt: treat reflect.Value specially - as the value it holds 2015-04-15 15:59:39 +00:00