MCPcopy Create free account
hub / github.com/github/gh-aw / optimizeNode

Function optimizeNode

pkg/workflow/expression_optimizer.go:61–77  ·  view source on GitHub ↗

optimizeNode performs a single bottom-up optimisation pass over the tree. It recurses into children first so that simplifications at lower levels can unlock further simplifications at higher levels in the same pass.

(node ConditionNode)

Source from the content-addressed store, hash-verified

59// It recurses into children first so that simplifications at lower levels can
60// unlock further simplifications at higher levels in the same pass.
61func optimizeNode(node ConditionNode) ConditionNode {
62 switch n := node.(type) {
63 case *AndNode:
64 return optimizeAndNode(n)
65 case *OrNode:
66 return optimizeOrNode(n)
67 case *NotNode:
68 return optimizeNotNode(n)
69 case *DisjunctionNode:
70 return optimizeDisjunctionNode(n)
71 default:
72 // Leaf nodes (ExpressionNode, ComparisonNode, FunctionCallNode,
73 // PropertyAccessNode, StringLiteralNode, BooleanLiteralNode) are returned
74 // unchanged.
75 return node
76 }
77}
78
79// --- helper predicates -------------------------------------------------------
80

Callers 5

OptimizeExpressionFunction · 0.85
optimizeAndNodeFunction · 0.85
optimizeOrNodeFunction · 0.85
optimizeNotNodeFunction · 0.85
optimizeDisjunctionNodeFunction · 0.85

Calls 4

optimizeAndNodeFunction · 0.85
optimizeOrNodeFunction · 0.85
optimizeNotNodeFunction · 0.85
optimizeDisjunctionNodeFunction · 0.85

Tested by

no test coverage detected