1
0
mirror of https://github.com/golang/go synced 2024-10-01 05:28:33 -06:00
go/ssa/interp
Alan Donovan 8097dad724 go.tools/ssa: Select now returns received values by tuple, not interface.
Before, all values received on some channel by Select would
flow to an empty interface, creating a spurious confluence for
flow analyses.  Now, the tuple returned by Select has one
component for each 'receive' case.

Also, fixes:
- Removed workarounds for now-fixed typechecker bug in FuncLit+TypeAssert.
- sanity check that all Value Instructions have non-nil Type().
- Convert: document and sanity-check that at least one of the types is basic.

Also, other things to help clients:
- Define CallInstruction interface: common parts of Call, Go, Defer.
- Add CallCommon.Signature() method.
- Literal.Pos() is now populated.

R=gri
CC=golang-dev
https://golang.org/cl/10505043
2013-06-24 14:15:13 -04:00
..
testdata go.tools/ssa: fix bug in code emitted for ast.TypeAssertExpr. 2013-06-13 17:31:32 -04:00
external_plan9.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
external_unix.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
external_windows.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
external.go go.tools/ssa: Value.Pos() method + remaining source position plumbing. 2013-05-30 09:59:17 -04:00
interp_test.go go.tools/ssa: refactoring: eliminate Builder from API. 2013-06-03 16:46:57 -04:00
interp.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
map.go go.tools: add go/types, ssa, and cmd/vet 2013-05-17 13:20:39 -07:00
ops.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
reflect.go go.tools/go/types: Factories for all objects 2013-06-04 15:15:41 -04:00
value.go go.tools/ssa: Value.Pos() method + remaining source position plumbing. 2013-05-30 09:59:17 -04:00