The compiler-synthesised trampoline path (previous commit) covers every closure signature on demand; the hand-rolled stdlib impls were only for two specific shapes (`Closure() -> void`, `Closure(bool) -> void`) and are now strictly redundant. Kept: the `Block` struct, `BlockDescriptor`, the `_NSConcreteStackBlock` extern decl, and the shared `__sx_block_descriptor` global. The compiler-emitted code references all four; users still need to `#import "modules/std/objc_block.sx";` to bring them into the module. Removed: `__block_invoke_void`, `__block_invoke_bool`, and both `impl Into(Block) for Closure(...) -> void` blocks. Replaced with a comment block explaining how the compiler now handles the cast. After this commit, `xx my_closure : Block` works for ANY closure signature with no per-signature stdlib boilerplate. 189/189 example tests pass; chess on iOS-sim green.
3.0 KiB
3.0 KiB