// 901_massign_blank — tuple multi-assign discard `_` gap fixture for the // 901 asserttyped net (class G). In `_, a = f()` the blank `_` parses to // an empty-str N_IDENT with no decl, so the generic N_IDENT exprtype path // left it type_=nil (945's own comment documents the gap). The `_` is a // GAP, not an exemption — the slot has a real element type ([]u8 here), so // stamptuplebinds(define=false) stamps it with that element type (harec // drops `_` but still advances the tuple slot). a is pre-declared and // resolves the normal way; this reads 0. package main; fn mk() ([]u8, i64) = { let b: str = "hi"; let p: []u8; p.ptr = b.ptr; p.len = 2; p.cap = 5; return (p, 7i64); }; export fn main() i32 = { let a: i64 = 0i64; _, a = mk(); if (a != 7) { return 1; }; return 0; };