| // 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. |
| |
| // Package typeparams provides functions to work indirectly with type parameter |
| // data stored in go/ast and go/types objects, while these API are guarded by a |
| // build constraint. |
| // |
| // This package exists to make it easier for tools to work with generic code, |
| // while also compiling against older Go versions. |
| package typeparams |
| |
| import ( |
| "go/ast" |
| "go/token" |
| ) |
| |
| // A IndexExprData holds data from both ast.IndexExpr and the new |
| // ast.MultiIndexExpr, which was introduced in Go 1.18. |
| type IndexExprData struct { |
| X ast.Expr // expression |
| Lbrack token.Pos // position of "[" |
| Indices []ast.Expr // index expressions |
| Rbrack token.Pos // position of "]" |
| } |