// 901_forrange_tuple — for-range tuple-destructure binder gap fixture // for the 901 asserttyped net (class F). `for (let (k, v) .. s)` over a // `[](i64, i64)` left both binders — and every body use site of them, // plus the N_BIN wrapping them — type_=nil: the N_FORRANGE handler // installed the binders as SK_VAR but never back-filled their element // type, so the N_IDENT exprtype path read a nil decl type. stamptuplebinds // (the shared binder distributor, harec create_unpack_bindings) now peels // the iterable element tuple and stamps each binder, so this reads 0. package main; export fn main() i32 = { let buf: [2]i64; buf[0] = 1i64; buf[1] = 2i64; let s: [](i64, i64); s.ptr = buf.ptr: *(i64, i64); s.len = 1; s.cap = 1; let total: i64 = 0i64; for (let (k, v) .. s) { total += k + v; }; return total: i32; };