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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user