26 lines
832 B
Go
26 lines
832 B
Go
// 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 "]"
|
|
}
|