1
0
mirror of https://github.com/golang/go synced 2024-10-01 10:28:31 -06:00
go/ssa/interp/testdata
Alan Donovan 5db6491e90 go.tools/ssa/interp: fixes to equivalence relations.
- This change implements the correct type-based equivalence
  relation for aggregate types. e.g. comparison of struct
  types no longer compares the anonymous fields.  We do
  analogous things for hash().

- equals() and eqnil() have been separated: the former panics
  for uncomparable types, the latter permits comparisons of
  slice/map/func types against a literal nil and is intended
  for use only by "static" ssa.BinOp(EQL), not "dynamic" slice
  comparisons encountered during (e.g.) interface comparisons,
  which should panic regardless of operand nilness.

- we use a (global) typemap.Hasher to compute type hashes;
  hashing the Type.String() value was not sound.

+ tests.

NB, this change unearthed a bug in defer/recover within
init(); it will be fixed in a followup change.

R=gri, crawshaw
CC=golang-dev
https://golang.org/cl/13719043
2013-09-16 15:22:19 -04:00
..
boundmeth.go go.tools/ssa: (another) major refactoring of method-set logic. 2013-07-26 11:22:34 -04:00
coverage.go go.tools/ssa/interp: fixes to equivalence relations. 2013-09-16 15:22:19 -04:00
fieldprom.go go.tools/ssa: use go/types.LookupFieldOrMethod, and simplify. 2013-07-01 15:17:36 -04:00
ifaceconv.go go.tools/ssa: tests of method promotion and of interface conversion + bugfixes. 2013-07-26 21:49:27 -04:00
ifaceprom.go go.tools/ssa: fix a package-level var initialization order bug. 2013-07-29 14:24:09 -04:00
initorder.go go.tools/ssa: fix a package-level var initialization order bug. 2013-07-29 14:24:09 -04:00
methprom.go go.tools/ssa: tests of method promotion and of interface conversion + bugfixes. 2013-07-26 21:49:27 -04:00
mrvchain.go go.tools/go/types: clean up assignment checks (round 1) 2013-07-08 09:40:30 -07:00