-
Notifications
You must be signed in to change notification settings - Fork 17.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
go/types: expose an API for normalized interface terms #61013
Comments
Might be helpful to go over what |
This issue is currently labeled as early-in-cycle for Go 1.22. |
Unfortunately, this isn't going to happen for 1.22, which is perhaps not unreasonable given #63940. Let's wait another cycle to see if the correct API emerges. |
This issue is currently labeled as early-in-cycle for Go 1.23. |
I still think we should do this, but it's been an unfortunately low priority as most users have access to terms via x/tools/internal or x/exp/typeparams. Moving to the backlog, as it seems unlikely that we'll take this on before there is more demand. As mentioned above, #63940 is a higher priority for the team, and may affect the design of this API. |
@timothy-king as you are working on go/types and have a lot of experience with core types / normalized interface terms from your work on go/ssa, you seem like the perfect person to design a nice API here :) Tentatively reassigning, though I will leave it to you to prioritize. |
This is a placeholder for planning purposes, to be exchanged for a proper proposal at a future date.
As discussed in #60994, there are some missing
go/types
APIs that are currently papered over with thex/exp/typeparams
package.In particular, we should propose a
go/types
API that serves the purpose of theNormalTerms
function -- some way to traverse a normalized representation of the terms of an interface types.We could expose an equivalent API to
NormalTerms
, or do something simpler. Let's decide early in the go1.22 cycle.CC @griesemer @adonovan @timothy-king @mdempsky
The text was updated successfully, but these errors were encountered: