Description
As the proposal for go/ast has stabilized (#47781), I think it is time to start adding support for type parameters in pkgsite.
There is one major obstacle for this, which is that App Engine will not support 1.18 until some time after the 1.18 release, and we want to support type parameters well before then.
My thoughts on how to do this:
- Write a tool to maintain copies of stdlib packages in pkgsite. I made a working prototype of this in https://golang.org/cl/322411
- Copy the following packages to pkgsite:
go/ast
,go/build/constraint
,go/format
,go/internal/typeparams
,go/parser
,go/token
,go/printer
,go/scanner
. - Wire these in to pkgsite, which already uses a modified copy of go/doc.
I tested that this was possible in https://golang.org/cl/321949.
Once this is done, we should be able to sync these copied packages to tip using go generate
. Out of the box this should resolve parsing errors for generic code, and we can proceed with adding any additional features that make it easier to browse code with type parameters in pkgsite. After App Engine supports 1.18, we can delete these copies.
I can do this, but will hold of for a week or two to see if anyone has concerns or better ideas.