mirror of https://github.com/golang/go.git
Support for:
(*reflect.rtype).Field
(*reflect.rtype).FieldByName
reflect.MakeSlice
runtime.SetFinalizer
Details:
- analysis locates ssa.Functions for (reflect.Value).Call
and runtime.SetFinalizer during startup to that it can
special-case them during genCall. ('Call' is forthcoming.)
- The callsite.targets mechanism is only used for dynamic
calls now. For static calls we call callEdge during constraint
generation; this is a minor optimisation.
- Static calls to SetFinalizer are inlined so that the call
appears to go direct to the finalizer. (We'll use the same
trick for (reflect.Value).Call.)
- runtime.FuncForPC: treat as a no-op.
- Fixed pointer_test to properly deal with expectations
that are multi-sets.
- Inlined rtypeMethodByNameConstraint.addMethod.
- More tests.
R=crawshaw
CC=golang-dev
https://golang.org/cl/14682045
|
||
|---|---|---|
| .. | ||
| a_test.go | ||
| another.go | ||
| arrayreflect.go | ||
| arrays.go | ||
| channels.go | ||
| chanreflect.go | ||
| chanreflect1.go | ||
| context.go | ||
| conv.go | ||
| finalizer.go | ||
| flow.go | ||
| fmtexcerpt.go | ||
| func.go | ||
| funcreflect.go | ||
| hello.go | ||
| interfaces.go | ||
| mapreflect.go | ||
| maps.go | ||
| panic.go | ||
| recur.go | ||
| reflect.go | ||
| structreflect.go | ||
| structs.go | ||