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.
This commit is contained in:
James Shubin
2025-08-04 17:45:06 -04:00
parent 86c6ee8dee
commit 2b820da311
7 changed files with 310 additions and 240 deletions

View File

@@ -21,25 +21,21 @@ $out2 = $fn2()
test "${out1}" {}
test "${out2}" {}
-- OUTPUT --
Edge: FuncValue -> if # a
Edge: FuncValue -> if # a
Edge: FuncValue -> if # b
Edge: FuncValue -> if # b
Edge: call -> callSubgraphOutput # dummy
Edge: call -> callSubgraphOutput # dummy
Edge: const: bool(false) -> if # c
Edge: const: bool(true) -> if # c
Edge: if -> call # fn
Edge: if -> call # fn
Vertex: FuncValue
Vertex: FuncValue
Vertex: FuncValue
Vertex: FuncValue
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: if
Vertex: if
Vertex: exprIfSubgraphOutput
Vertex: exprIfSubgraphOutput
Vertex: exprif
Vertex: exprif