]> Cypherpunks repositories - gostls13.git/commit
go/types, types2: in resolveUnderlying, only compute path when needed
authorRobert Griesemer <gri@google.com>
Mon, 20 Oct 2025 17:25:23 +0000 (10:25 -0700)
committerGopher Robot <gobot@golang.org>
Wed, 22 Oct 2025 15:22:02 +0000 (08:22 -0700)
commit5a42af7f6c9ba057171d8a5af6f4b721b8eff10a
treedacf542d37c1cec833e76f767334da6532c136b4
parent4bdb55b5b86fc96addd43a845dabf6b76d100202
go/types, types2: in resolveUnderlying, only compute path when needed

When following a RHS chain, the (TypeName) Object path is only needed
when there is a cycle (i.e., an error), in which case we can be slow.
Rather than always compute the path, only compute it in the error case.
In the same vain, allocate the seen map lazily, only when needed.

This code could use a test (it doesn't seem to be encountered by our
test suite), but I haven't found a case to provoke the error yet.

Change-Id: Iff6313394442a251adc56580f746928ec13450fd
Reviewed-on: https://go-review.googlesource.com/c/go/+/712321
Auto-Submit: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
src/cmd/compile/internal/types2/named.go
src/go/types/named.go