1
0
mirror of https://github.com/golang/go synced 2024-11-19 02:54:42 -07:00
go/pointer
Alan Donovan 7a70c382be go.tools/pointer: fix panic in reflection.
reflect.Values may point to tagged objects with
interface type, e.g. x := reflect.ValueOf(new(interface{})).Elem().
We failed to consider this when implementing Elem.

Also, (reflect.Value).Interface() must do one "unboxing"
when it encounters such tagged objects.
i.e., x.Elem().Interface() and x.Interface() are equivalent
in that case.

Also:
- add example of tagged object with interface type.
- untabify (Label).String docstring.
- added tests.

R=crawshaw
CC=golang-dev
https://golang.org/cl/18020044
2013-10-28 10:58:46 -04:00
..
testdata go.tools/pointer: fix panic in reflection. 2013-10-28 10:58:46 -04:00
analysis.go go.tools/pointer: more reflection. 2013-10-17 09:26:44 -04:00
api.go go.tools/pointer: minor API simplifications. 2013-09-30 12:39:54 -04:00
callgraph.go go.tools/pointer: more reflection. 2013-10-17 09:26:44 -04:00
doc.go go.tools/pointer: fix panic in reflection. 2013-10-28 10:58:46 -04:00
example_test.go go.tools/importer: expose CreatePackage method. 2013-10-10 12:37:49 -04:00
gen.go go.tools/ssa: fix computation of set of types requiring method sets. 2013-10-23 17:07:52 -04:00
intrinsics.go go.tools/pointer: more reflection. 2013-10-17 09:26:44 -04:00
labels.go go.tools/pointer: fix panic in reflection. 2013-10-28 10:58:46 -04:00
pointer_test.go go.tools/ssa: CreateTestMainPackage: synthesize test driver as a package ("testmain") not 'main' function. 2013-10-23 18:07:53 -04:00
print.go go.tools/pointer: use assignable not identical type predicate in reflect.{Send,SetMapIndex,etc} 2013-10-14 13:53:41 -04:00
reflect.go go.tools/pointer: fix panic in reflection. 2013-10-28 10:58:46 -04:00
solve.go go.tools/pointer: fix panic in reflection. 2013-10-28 10:58:46 -04:00
TODO go.tools/pointer: make os.Args point to something. 2013-10-01 09:46:33 -04:00
util.go go.tools/pointer: reflect, part 2: channels. 2013-09-23 16:13:01 -04:00