...

Package typeparams

import "go/internal/typeparams"
Overview
Index

Overview ▾

func PackIndexExpr

func PackIndexExpr(x ast.Expr, lbrack token.Pos, exprs []ast.Expr, rbrack token.Pos) ast.Expr

type IndexExpr

IndexExpr wraps an ast.IndexExpr or ast.IndexListExpr.

Orig holds the original ast.Expr from which this IndexExpr was derived.

Note: IndexExpr (intentionally) does not wrap ast.Expr, as that leads to accidental misuse such as encountered in golang/go#63933.

TODO(rfindley): remove this helper, in favor of just having a helper function that returns indices.

type IndexExpr struct {
    Orig    ast.Expr   // the wrapped expr, which may be distinct from the IndexListExpr below.
    X       ast.Expr   // expression
    Lbrack  token.Pos  // position of "["
    Indices []ast.Expr // index expressions
    Rbrack  token.Pos  // position of "]"
}

func UnpackIndexExpr

func UnpackIndexExpr(n ast.Node) *IndexExpr

func (*IndexExpr) Pos

func (x *IndexExpr) Pos() token.Pos