mirror of
https://github.com/golang/go
synced 2024-10-01 20:28:33 -06:00
341a07a3aa
Method sets: - Simplify CallCommon. Avoid the implicit copy when calling a T method on a *T receiver. This simplifies clients. Instead we generate "indirection wrapper" functions that do this (like gc does). New invariant: m's receiver type is exactly T for all m in MethodSet(T) - MakeInterface no longer holds the concrete type's MethodSet. We can defer its computation this way. - ssa.Type now just wraps a types.TypeName object. MethodSets are computed as needed, not eagerly. Position info: - new CanonicalPos utility maps ast.Expr to canonical token.Pos, as returned by {Instruction,Value}.Pos() methods. - Don't set posn for implicit operations (e.g. varargs array alloc) - Set position info for ChangeInterface and Slice instructions. Cosmetic: - add Member.Token() method - simplify isPointer - Omit words "interface", "slice" when printing MakeInterface, MakeSlice; the type is enough. - Comments on PathEnclosingInterval. - Remove Function.FullName() where implicit String() suffices. Also: - Exposed NewLiteral to clients. - Added ssa.Instruction.Parent() *Function Added ssa.BasicBlock.Parent() *Function. Added Sanity checks for above. R=golang-dev, gri CC=golang-dev https://golang.org/cl/10166045 |
||
---|---|---|
.. | ||
testdata | ||
external_plan9.go | ||
external_unix.go | ||
external_windows.go | ||
external.go | ||
interp_test.go | ||
interp.go | ||
map.go | ||
ops.go | ||
reflect.go | ||
value.go |