fibers B1.2: record async-args = variadic pack (..$args: []Type) correction

User correction: async's args are a variadic heterogeneous comptime pack
(..$args: []Type, specs.md:1383), not a single $A. Orthogonal to 0151
(return type-var binding). Recorded for the B1.2 resume.
This commit is contained in:
agra
2026-06-20 19:03:43 +03:00
parent b97da83e8b
commit f0a918f3c8

View File

@@ -142,6 +142,14 @@ prelude shifts many `.ir` type tables; confirm the diff is ONLY layout/numbering
vtable, NO error text. The `Context` layout decision is settled: `{ allocator; data; io; }`
(allocator index 0 fixed by `call.zig:1229`, `io` last).
**API CORRECTION (user, 2026-06-20):** `async`'s args are a **variadic heterogeneous
comptime pack** `..$args: []Type` ([specs.md:1383](../specs.md#L1383)), NOT a single `$A`.
Shape: `async(io, worker, ..args)` forwards a per-position-typed pack to `worker` (so
`context.io.async(fn, a, b, c)` works at any arity). The WIP's single-`arg: $A` form is
superseded — re-land async with the pack. This is ORTHOGONAL to issue 0151 (which is about
the *return* type-var `$R` not binding in the body — needed regardless of arg shape); also
verify packs-in-fn-pointer-param-signatures work when re-landing (surface a new issue if not).
NOTE for the resume: do NOT add `io = context.io` to the 17 partial `push Context.{...}` sites
— the push-inherit-omitted fix (in the WIP diff) makes omitted fields inherit from the ambient
context, which is the correct fix and was verified to compile. Use that, not per-site edits.