Removes `__block_invoke_void` / `__block_invoke_bool` and their companion `Into(Block)` impls from `library/modules/std/objc_block.sx`. The generic `Into(Block) for Closure(..$args) -> $R` impl from step 5.2 now covers both shapes (and every other closure shape) via per-mono `#insert build_block_convert($args, $R)` source emission. Net stdlib shrinkage: ~52 lines, two trampolines + two per-shape impls down to zero. Adding a new block-shape consumer no longer requires touching stdlib — the impl emits per-call-shape on demand. `examples/95-objc-block-noop.sx` (zero-arg closure) and `examples/96-objc-block-multi-arg.sx` (user-declared per-shape impl for `Closure(s32, *void) -> void`) still pass: 95 routes through the new generic, 96 keeps its in-file impl as a documentation example of the user-declares-their-own path. Suite at 217/217.
5.5 KiB
5.5 KiB