]> Cypherpunks repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: introduce OCONVIDATA op
authorKeith Randall <khr@golang.org>
Sat, 24 Jul 2021 01:10:58 +0000 (18:10 -0700)
committerKeith Randall <khr@golang.org>
Sat, 24 Jul 2021 15:57:01 +0000 (15:57 +0000)
commit77e0bf294cc431d5608c183d56b6aadbb95b09b0
tree0acfce3c498e01a17f73ce5edab40c08fdd9616f
parent9f928f9318efb9e6a9d45e7ed959afaaee4b7315
[dev.typeparams] cmd/compile: introduce OCONVIDATA op

This operation computes just the data field needed to put its argument
into an interface. Used by generics because we produce the type field
of an interface using dictionaries (instead of statically).

With this operation defined, we can now assert that shape types
are never marked as used in interfaces (the only previous use
was IDATA(CONVIFACE(t))).

Change-Id: Idb1eb5f3b238285cb99413d382599c0621b7681a
Reviewed-on: https://go-review.googlesource.com/c/go/+/337109
Trust: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
13 files changed:
src/cmd/compile/internal/escape/expr.go
src/cmd/compile/internal/ir/expr.go
src/cmd/compile/internal/ir/fmt.go
src/cmd/compile/internal/ir/node.go
src/cmd/compile/internal/ir/op_string.go
src/cmd/compile/internal/noder/stencil.go
src/cmd/compile/internal/reflectdata/reflect.go
src/cmd/compile/internal/typecheck/iexport.go
src/cmd/compile/internal/typecheck/iimport.go
src/cmd/compile/internal/walk/assign.go
src/cmd/compile/internal/walk/convert.go
src/cmd/compile/internal/walk/expr.go
src/cmd/compile/internal/walk/order.go