✓
Passing This code compiles and runs correctly.
Code
// ASPIRATION — TODO idea pin (designed rejection). T2 + queue (d): the
// interceptor cascade graph is comptime-visible; a cross-store cycle
// (alpha's contract writes beta, beta's writes alpha) is rejected at
// compile time WITH THE CYCLE NAMED — never an infinite cascade at
// runtime. Field-level graph; @converges carve-out for clamp shapes is
// the open (d) detail.
~import std/io
~import std/store
~std/store:create(alpha) { x: 0[i64] }
! updated { old, new } |> std/store:stored { beta.y: new }
~std/store:create(beta) { y: 0[i64] }
! updated { old, new } |> std/store:stored { alpha.x: new }
~std/store:stored { alpha.x: 1 }
Backend must reject with:
CONTAINS cycle
CONTAINS alpha
CONTAINS betaError Verification
Actual Compiler Output
🎯 Compiler coordination: Passes: 15 (flow-based: frontend, analysis, emission)
Error: output_emitted.zig:36:16: error: std/store: store cascade cycle: alpha.x -> beta.y -> alpha.x - interceptor contracts must be acyclic; a convergent self-write needs @converges (unbuilt, queue (d))
comptime { @compileError("std/store: store cascade cycle: alpha.x -> beta.y -> alpha.x - interceptor contracts must be acyclic; a convergent self-write needs @converges (unbuilt, queue (d))"); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
referenced by:
main_module: output_emitted.zig:29:25
main: output_emitted.zig:650:5
4 reference(s) hidden; use '-freference-trace=6' to see all references
output_emitted.zig:38:16: error: std/store:stored: unknown store 'alpha' - no std/store:create(alpha) found
comptime { @compileError("std/store:stored: unknown store 'alpha' - no std/store:create(alpha) found"); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Flows
flow ~create click a branch to expand · @labels scroll to their anchor
create (expr: alpha, source: x: 0[i64])
flow ~create click a branch to expand · @labels scroll to their anchor
create (expr: beta, source: y: 0[i64])
flow ~stored click a branch to expand · @labels scroll to their anchor
stored (source: alpha.x: 1)
Test Configuration
MUST_FAIL
Expected Error:
store cascade cycle: alpha.x -> beta.y -> alpha.x — interceptor contracts must be acyclic; a convergent self-write needs @converges