Description
We need to get x/tools tests passing with GODEBUG=gotypesalias=1 (which enables explicit nodes for type aliases) before we can change the default value of this flag (x/tools test run as a TryBot for the main repo, and in any case we can't break x/tools...)
Therefore, this is somewhat time-sensitive. @adonovan, @timothy-king, and I can collaborate on this. We should divvy up packages.
Possibly incomplete list of packages that fail:
- cmd/callgraph (@adonovan: no changes)
- cmd/deadcode (@adonovan: https://go.dev/cl/559935)
- go/analysis/passes/deepequalerrors (@adonovan: https://go.dev/cl/559936)
- go/analysis/passes/stringintconv (@adonovan: https://go.dev/cl/559916)
- go/analysis/unitchecker (@adonovan: no changes)
- go/callgraph (@adonovan: no changes)
- go/callgraph/rta (@adonovan: https://go.dev/cl/559917)
- go/packages (@adonovan: no changes)
- go/types/typeutil (@adonovan: https://go.dev/cl/559915)
- internal/apidiff (@adonovan: https://go.dev/cl/559935)
- internal/refactor/inline (@adonovan: https://go.dev/cl/562036)
- gopls/doc (@adonovan: https://go.dev/cl/562037)
- everything else that type-asserts or type-switches types.Type (@adonovan: https://go.dev/cl/565035).
[Edit: the checkboxes above are such a tiny sample of the tip of the iceberg that they paint a misleading picture of the work involved --adonovan]
Note that this change only addresses behavior preservation. Additional changes are needed where explicit aliases (and, later, generic aliases) require either new features or new algorithms. The most obvious candidates are type import and export, and gopls features.
Related: