mirror of
https://github.com/golang/go.git
synced 2025-05-07 08:32:59 +00:00
Historically, Objects in go/types were canonical, meaning each entity was represented by exactly one variable and could thus be identified by its address. With object instantiation this is no longer the case: Var and Func objects must be copied to hold substituted type information, and there may be more than one Var or Func variable representing the same source-level entity. This CL adds Origin methods to *Var and *Func, so users can efficiently navigate to the corresponding canonical object on the generic type. Fixes #51682 Change-Id: Ia49e15bd6515e1db1eb3b09b88ba666659601316 Reviewed-on: https://go-review.googlesource.com/c/go/+/395535 Reviewed-by: Robert Griesemer <gri@google.com> Run-TryBot: Robert Findley <rfindley@google.com> Reviewed-by: Alan Donovan <adonovan@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>