Result: done
Files: crates/nikaia-std/src/tools/check_function.nika crates/nikaia-std/src/tools/check_core_ops.nika crates/nikaia-std/src/tools/lowered.rs crates/nikaia-std/src/tools/lowered/check_function.rs crates/nikaia-std/src/tools/lowered/check_core_ops.rs tests/compiler/tests/a_lambda_typed_optional_widens_its_arms.nika tests/compiler/tests/a_lambda_typed_optional_widens_its_arms.stdout
Commit: check: a lambda typed -> T? wraps its non-null arms in Some (#1017)
Body: The wrap a named function’s tail takes (some_at_the_tails for a branching tail under a nullable result, else the slot’s FactWrap) moves into check_function_wrap_tail; check_core_ops_closure calls it for a lambda whose place declares a fn type with a nullable result. The site is check_core_ops_closure, not check_core_lambda_leave: its outer is the enclosing function’s expected type, not the lambda’s declared result. The emitter needed no change (emit_expr reads some_tails and wrapped on any node).
Fixes: #1017
Pushed: ee9aa6a6bc9cfd0562447a3ad3c5e3bc90631b8f
Tests: new a_lambda_typed_optional_widens_its_arms (tests/compiler –both-settings 407 passed); its lines 1 and 3 failed on the unfixed binary (rustc Option