Files
mgmt/lang/interpret_test/TestAstFunc1/changing-func.txtar
James Shubin 2b820da311 lang: ast: structs, funcs: structs: Exprif without a channel
This adds an improved "expr if" which only adds the active branch to the
graph and removes the "secret" channel.
2025-08-04 17:45:06 -04:00

42 lines
867 B
Plaintext

-- main.mcl --
# this can return changing functions, and could be optimized, too
func funcgen($b) {
if $b {
func() {
"hello"
}
} else {
func() {
"world"
}
}
}
$fn1 = funcgen(true)
$fn2 = funcgen(false)
$out1 = $fn1()
$out2 = $fn2()
test "${out1}" {}
test "${out2}" {}
-- OUTPUT --
Edge: call -> callSubgraphOutput # dummy
Edge: call -> callSubgraphOutput # dummy
Edge: const: bool(false) -> exprif # condition
Edge: const: bool(true) -> exprif # condition
Edge: exprIfSubgraphOutput -> call # fn
Edge: exprIfSubgraphOutput -> call # fn
Edge: exprif -> exprIfSubgraphOutput # dummy
Edge: exprif -> exprIfSubgraphOutput # dummy
Vertex: call
Vertex: call
Vertex: callSubgraphOutput
Vertex: callSubgraphOutput
Vertex: const: bool(false)
Vertex: const: bool(true)
Vertex: exprIfSubgraphOutput
Vertex: exprIfSubgraphOutput
Vertex: exprif
Vertex: exprif