// neg_forrange_tuple — `for (let (shadowmod, x) .. s)` tuple- // destructure range loop where the first binder shadows the // imported module. N_FORRANGE wires check_module_shadow per-name // on the tuple branch (n->list), so the rule fires at the for // header even though `x` is innocuous. package paramshadowmod; import shadowmod; 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 (shadowmod, x) .. s) { total += shadowmod + x; }; return total: i32; };