diff --git a/src/cmd/cgo/ast.go b/src/cmd/cgo/ast.go index 861479db7ac..97b18cd22d4 100644 --- a/src/cmd/cgo/ast.go +++ b/src/cmd/cgo/ast.go @@ -363,7 +363,8 @@ func (f *File) walk(x interface{}, context astContext, visit func(*File, interfa // everything else just recurs default: - f.walkUnexpected(x, context, visit) + error_(token.NoPos, "unexpected type %T in walk", x) + panic("unexpected type") case nil: @@ -396,6 +397,9 @@ func (f *File) walk(x interface{}, context astContext, visit func(*File, interfa case *ast.IndexExpr: f.walk(&n.X, ctxExpr, visit) f.walk(&n.Index, ctxExpr, visit) + case *ast.IndexListExpr: + f.walk(&n.X, ctxExpr, visit) + f.walk(n.Indices, ctxExpr, visit) case *ast.SliceExpr: f.walk(&n.X, ctxExpr, visit) if n.Low != nil { @@ -434,8 +438,8 @@ func (f *File) walk(x interface{}, context astContext, visit func(*File, interfa case *ast.StructType: f.walk(n.Fields, ctxField, visit) case *ast.FuncType: - if tparams := funcTypeTypeParams(n); tparams != nil { - f.walk(tparams, ctxParam, visit) + if n.TypeParams != nil { + f.walk(n.TypeParams, ctxParam, visit) } f.walk(n.Params, ctxParam, visit) if n.Results != nil { @@ -524,8 +528,8 @@ func (f *File) walk(x interface{}, context astContext, visit func(*File, interfa f.walk(n.Values, ctxExpr, visit) } case *ast.TypeSpec: - if tparams := typeSpecTypeParams(n); tparams != nil { - f.walk(tparams, ctxParam, visit) + if n.TypeParams != nil { + f.walk(n.TypeParams, ctxParam, visit) } f.walk(&n.Type, ctxType, visit) diff --git a/src/cmd/cgo/ast_go1.go b/src/cmd/cgo/ast_go1.go deleted file mode 100644 index 2f65f0f7183..00000000000 --- a/src/cmd/cgo/ast_go1.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build compiler_bootstrap - -package main - -import ( - "go/ast" - "go/token" -) - -func (f *File) walkUnexpected(x interface{}, context astContext, visit func(*File, interface{}, astContext)) { - error_(token.NoPos, "unexpected type %T in walk", x) - panic("unexpected type") -} - -func funcTypeTypeParams(n *ast.FuncType) *ast.FieldList { - return nil -} - -func typeSpecTypeParams(n *ast.TypeSpec) *ast.FieldList { - return nil -} diff --git a/src/cmd/cgo/ast_go118.go b/src/cmd/cgo/ast_go118.go deleted file mode 100644 index ced30728dc9..00000000000 --- a/src/cmd/cgo/ast_go118.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !compiler_bootstrap - -package main - -import ( - "go/ast" - "go/token" -) - -func (f *File) walkUnexpected(x interface{}, context astContext, visit func(*File, interface{}, astContext)) { - switch n := x.(type) { - default: - error_(token.NoPos, "unexpected type %T in walk", x) - panic("unexpected type") - - case *ast.IndexListExpr: - f.walk(&n.X, ctxExpr, visit) - f.walk(n.Indices, ctxExpr, visit) - } -} - -func funcTypeTypeParams(n *ast.FuncType) *ast.FieldList { - return n.TypeParams -} - -func typeSpecTypeParams(n *ast.TypeSpec) *ast.FieldList { - return n.TypeParams -}