diff options
| author | Dan Scales <danscales@google.com> | 2022-01-19 14:46:58 -0800 |
|---|---|---|
| committer | Dan Scales <danscales@google.com> | 2022-01-24 17:07:30 +0000 |
| commit | f88c3b9f4d087895c3eab5ac4dd8459c76d0d0d8 (patch) | |
| tree | fe44d2cca3e0c41d42a58492628382461372b7c2 /src/runtime | |
| parent | f9df4ea0c9426eecb93375d31e36cccf95b46e1f (diff) | |
| download | go-f88c3b9f4d087895c3eab5ac4dd8459c76d0d0d8.tar.xz | |
cmd/compile: distinguish bound calls/field access in getInstInfo
Given we have support for field access to type params with a single
structural type, we need to distinguish between methods calls and field
access when we have an OXDOT node on an expression which is a typeparam
(or correspondingly a shape). We were missing checks in getInstInfo,
which figures out the dictionary format, which then caused problems when
we generate the dictionaries. We don't need/want dictionary entries for
field access, only for bound method calls. Added a new function
isBoundMethod() to distinguish OXDOT nodes which are bound calls vs.
field accesses on a shape.
Removed isShapeDeref() - we can't have field access or method call on a
pointer to variable of type param type.
Fixes #50690
Change-Id: Id692f65e6f427f28cd2cfe474dd30e53c71877a7
Reviewed-on: https://go-review.googlesource.com/c/go/+/379674
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime')
0 files changed, 0 insertions, 0 deletions
