1
0
mirror of https://github.com/golang/go synced 2024-10-01 05:28:33 -06:00
go/ssa
Alan Donovan e7016436a6 go.tools/ssa: accommodate go/types changes to value,ok-mode inferred types.
The required changes were surprisingly minimal (I was hoping for a net
code deletion) because ssa is essentially doing its own type inference
for the three value,ok operators---and it continues to have to do so.
To see why, consider:

  var i interface{}; var ok bool
  i, ok := (map[string]string)(nil)[""]

Before, go/types inferred interface{} for the RHS of the assignment,
and now it infers (interface{}, bool), yet neither of these is what
ssa needs: it needs to know that the map values were strings so
that it can emit a lookup of the right type followed by a conversion
from string to interface{}.

TBR=gri
CC=golang-dev
https://golang.org/cl/11988044
2013-07-31 21:31:46 -04:00
..
interp go.tools/ssa/interp: fix build 2013-07-30 20:28:18 -07:00
testdata go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
blockopt.go go.tools/ssa: combine CallCommon.{Recv,Func} as Value. 2013-07-26 14:06:26 -04:00
builder_test.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
builder.go go.tools/ssa: accommodate go/types changes to value,ok-mode inferred types. 2013-07-31 21:31:46 -04:00
const.go go.tools/ssa: s/Literal/Const/g, s/Constant/NamedConst/g 2013-07-16 13:50:08 -04:00
create.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
doc.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
dom.go go.tools/ssa: un-export Function.FullName. Use String. 2013-06-26 12:38:08 -04:00
emit.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
example_test.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
func.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
lift.go go.tools/ssa: s/Literal/Const/g, s/Constant/NamedConst/g 2013-07-16 13:50:08 -04:00
lvalue.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
print.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
promote.go go.tools/ssa: avoid calling go/types.NewSelection, and eliminate it. 2013-07-30 16:36:58 -04:00
sanity.go go.tools/ssa: s/Literal/Const/g, s/Constant/NamedConst/g 2013-07-16 13:50:08 -04:00
source_test.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
source.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
ssa.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
ssadump.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
stdlib_test.go go.tools/ssa: extend debug information to arbitrary ast.Exprs. 2013-07-31 13:13:05 -04:00
util.go go.tools/ssa: (another) major refactoring of method-set logic. 2013-07-26 11:22:34 -04:00
visit.go go.tools/ssa: avoid calling go/types.NewSelection, and eliminate it. 2013-07-30 16:36:58 -04:00