package typeparams
import (
)
func ( ast.Expr, token.Pos, []ast.Expr, token.Pos) ast.Expr {
switch len() {
case 0:
panic("internal error: PackIndexExpr with empty expr slice")
case 1:
return &ast.IndexExpr{
X: ,
Lbrack: ,
Index: [0],
Rbrack: ,
}
default:
return &ast.IndexListExpr{
X: ,
Lbrack: ,
Indices: ,
Rbrack: ,
}
}
}
type IndexExpr struct {
Orig ast.Expr
*ast.IndexListExpr
}
func ( ast.Node) *IndexExpr {
switch e := .(type) {
case *ast.IndexExpr:
return &IndexExpr{, &ast.IndexListExpr{
X: .X,
Lbrack: .Lbrack,
Indices: []ast.Expr{.Index},
Rbrack: .Rbrack,
}}
case *ast.IndexListExpr:
return &IndexExpr{, }
}
return nil
}