336 take only rule lowers to drain sweep

✓ Passing This code compiles and runs correctly.

Code

input.k

Actual

pool 0
guarded 1
ipool 0
ipool drained
after-refill 0
rule still stands

Expected output

✓ Zig✓ JavaScript
pool 0
guarded 1
ipool 0
ipool drained
after-refill 0
rule still stands

Flows

flow ~new click a branch to expand · @labels scroll to their anchor
new (pool, capacity: 64, source: hp: i64)
flow ~new click a branch to expand · @labels scroll to their anchor
new (guarded, capacity: 64, source: hp: i64)
flow ~new click a branch to expand · @labels scroll to their anchor
new (ipool, capacity: 64, source: tag: i64, hp: i64)
flow ~store click a branch to expand · @labels scroll to their anchor
store (expr: ipool, tag, source: <implicit_source>)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (pool, source: hp: 5)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (pool, source: hp: 50)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (pool, source: hp: 8)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (guarded, source: hp: 5)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (guarded, source: hp: 50)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (guarded, source: hp: 8)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (ipool, source: tag: 1, hp: 5)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (ipool, source: tag: 2, hp: 50)
subflow ~drain-pool click a branch to expand · @labels scroll to their anchor
rule (pool)
subflow ~sweep-guarded click a branch to expand · @labels scroll to their anchor
rule (guarded)
subflow ~drain-ipool click a branch to expand · @labels scroll to their anchor
rule (ipool)
flow ~drain-pool click a branch to expand · @labels scroll to their anchor
drain-pool
flow ~sweep-guarded click a branch to expand · @labels scroll to their anchor
sweep-guarded
flow ~drain-ipool click a branch to expand · @labels scroll to their anchor
drain-ipool
flow ~print.ln click a branch to expand · @labels scroll to their anchor
print.ln (expr: "pool {{ pool.len:d }}")
flow ~print.ln click a branch to expand · @labels scroll to their anchor
print.ln (expr: "guarded {{ guarded.len:d }}")
flow ~print.ln click a branch to expand · @labels scroll to their anchor
print.ln (expr: "ipool {{ ipool.len:d }}")
flow ~query click a branch to expand · @labels scroll to their anchor
query (ipool)
flow ~insert click a branch to expand · @labels scroll to their anchor
insert (ipool, source: tag: 2, hp: 99)
flow ~print.ln click a branch to expand · @labels scroll to their anchor
print.ln (expr: "after-refill {{ ipool.len:d }}")
flow ~query click a branch to expand · @labels scroll to their anchor
query (ipool)

Test Configuration

MUST_RUN LANGUAGES: zig js

Post-validation Script: