]> Cypherpunks repositories - gostls13.git/commit
go/types, types2: record type parameters in receiver expressions as uses
authorRobert Griesemer <gri@golang.org>
Wed, 31 Jul 2024 02:35:27 +0000 (19:35 -0700)
committerGopher Robot <gobot@golang.org>
Wed, 31 Jul 2024 20:27:58 +0000 (20:27 +0000)
commit385e963e70aaf54a9d96a2c8c28e0a2df3527028
tree819e29067d432977dd3f7c53788389049fcdaa66
parentab7435abd9db52732d2d1d3494aae669d91937f1
go/types, types2: record type parameters in receiver expressions as uses

CL 594740 rewrote type checking of method receiver types. Because that
CL takes apart receivers "manually" rather than using the regular code
for type checking type expressions, type parameters in receiver type
expressions were only recorded as definitions (in Info.Defs).

Before that CL, such type parameters were simultaneously considered
definitions (they are declared by the receiver type expression) and
uses (they are used to instantiate the receiver type expression).

Adjust the receiver type checking code accordingly and record its
type parameters also in Info.Uses and Info.Types.

While at it, in go/types, replace declareTypeParams (plural) with
declareTypeParam (singular) to more closely match types2 code.
No functionality or semantic change.

Fixes #68670.
For #51343.

Change-Id: Ibbca1a9b92e31b0dc972052a2827deeab49da98b
Reviewed-on: https://go-review.googlesource.com/c/go/+/601935
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Tim King <taking@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Robert Griesemer <gri@google.com>
src/cmd/compile/internal/types2/api_test.go
src/cmd/compile/internal/types2/signature.go
src/go/types/api_test.go
src/go/types/decl.go
src/go/types/signature.go