1
0
mirror of https://github.com/golang/go synced 2024-11-19 00:54:42 -07:00
go/ssa
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
..
interp go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
blockopt.go go.tools: add missing files ssa/*.go 2013-05-17 13:25:48 -07:00
builder.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
create.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
doc.go go.tools/ssa: Value.Pos() method + remaining source position plumbing. 2013-05-30 09:59:17 -04:00
dom.go go.tools: add missing files ssa/*.go 2013-05-17 13:25:48 -07:00
emit.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
example_test.go go.tools/ssa: small changes accumulated during gri's vacation. :) 2013-06-13 14:43:35 -04:00
func.go go.tools/ssa: memoize synthesis of all wrapper methods. 2013-06-14 15:50:37 -04:00
lift.go go.tools/ssa: small changes accumulated during gri's vacation. :) 2013-06-13 14:43:35 -04:00
literal.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
lvalue.go go.tools/ssa: Value.Pos() method + remaining source position plumbing. 2013-05-30 09:59:17 -04:00
print.go go.tools/ssa: memoize synthesis of all wrapper methods. 2013-06-14 15:50:37 -04:00
promote.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
sanity.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
source_ast.go go.tools/ssa: small changes accumulated during gri's vacation. :) 2013-06-13 14:43:35 -04:00
source_test.go go.tools/ssa: refactoring: eliminate Builder from API. 2013-06-03 16:46:57 -04:00
source.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
ssa.go go.tools/ssa: Select now returns received values by tuple, not interface. 2013-06-24 14:15:13 -04:00
ssadump.go go.tools/ssa: refactoring: eliminate Builder from API. 2013-06-03 16:46:57 -04:00
util.go go.tools/ssa: memoize synthesis of all wrapper methods. 2013-06-14 15:50:37 -04:00