My rebase of https://golang.org/cl/300649 before submitting broke the
build (and tests) when using the typeparams build constraint. In a
subsequent CL I add test coverage back to cmd/dist.
This time, I've tested by running:
- go test -tags=typeparams go/...
- go test -tags=typeparams cmd/gofmt
All tests pass except for the new TestResolution/typeparams.go2, which I
will fix in a follow-up CL.
For #44933
Change-Id: I439d387841604cf43a90e2ce41dbe6bbbdb0306d
Reviewed-on: https://go-review.googlesource.com/c/go/+/310070
Trust: Robert Findley <rfindley@google.com>
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
case *IndexExpr:
Walk(v, n.X)
- Walk(v, n.Index)
+ // n.Index may be nil for invalid type instantiation expressions, e.g.
+ // var x T[].
+ if n.Index != nil {
+ Walk(v, n.Index)
+ }
case *SliceExpr:
Walk(v, n.X)
package ast
+import (
+ "fmt"
+)
+
func walkFuncTypeParams(v Visitor, n *FuncType) {
if n.TParams != nil {
Walk(v, n.TParams)
}
func walkOtherNodes(v Visitor, n Node) {
- if e, ok := n.(*ast.ListExpr); ok {
+ if e, ok := n.(*ListExpr); ok {
if e != nil {
- Walk(v, e)
+ for _, elem := range e.ElemList {
+ Walk(v, elem)
+ }
}
} else {
panic(fmt.Sprintf("ast.Walk: unexpected node type %T", n))