// Phase 200-D: Minimal capture test (Pattern 2) // This test verifies that captured variables work in JoinIR Pattern 2 // without using substring or other unsupported methods. // // Key points: // - base/offset are captured (function-scoped constants) // - No substring/indexOf in body-local init (Phase 193 limitation) // - Simple accumulation using captured value // - Break condition: i == 100 (never true, just to trigger Pattern 2) static box Main { main() { local base = 10 // Captured var (used in multiplication) local offset = 5 // Captured var (used in addition) local i = 0 local v = 0 local n = 3 // Loop 3 times // Pattern 2: loop with break (break never fires) loop(i < n) { // Simple break condition that never fires if i == 100 { break } // Use captured variable in accumulation // v = v + base // For i=0: v = 0 + 10 = 10 // For i=1: v = 10 + 10 = 20 // For i=2: v = 20 + 10 = 30 v = v + base i = i + 1 } print(v) // Expected: 30 } }