type astPruner …
func PruneAst(expr ast.Expr, macroCalls map[int64]ast.Expr, state EvalState) *ast.AST { … }
func (p *astPruner) maybeCreateLiteral(id int64, val ref.Val) (ast.Expr, bool) { … }
func (p *astPruner) maybePruneOptional(elem ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) maybePruneIn(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) maybePruneLogicalNot(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) maybePruneOr(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) maybePruneAnd(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) maybePruneConditional(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) maybePruneFunction(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) maybePrune(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) prune(node ast.Expr) (ast.Expr, bool) { … }
func (p *astPruner) value(id int64) (ref.Val, bool) { … }
func (p *astPruner) maybeValue(id int64) (ref.Val, bool) { … }
func (p *astPruner) nextID() int64 { … }
type astVisitor …
func getMaxID(expr ast.Expr) int64 { … }
func clearIterVarVisitor(varName string, state EvalState) astVisitor { … }
func maxIDVisitor(maxID *int64) astVisitor { … }
func visit(expr ast.Expr, visitor astVisitor) { … }