coolguy a2428ca5da fix: enforce the try rule at every position
SPEC.md allows `try` only inside a function returning an error union, but the
check sat in the FE_N_EXPR_STMT case, so it only ever saw a bare `try e;` and
walked past `var x = try e;` and `x = try e;`. Move it onto the try expression
in check_expr and drop the statement-level copy.

This could not land before M7: closing the hole forces m5/runtime.fe's `run` to
return an error union, and value returns from `-> !T` need contextual success
construction. That arrives with M7, and `run` is now `-> !i32`, so the rule can
be enforced. Supersedes the SPEC.AUDIT.md entry that recorded the blockage.

M1-M7: 183 passed.
2026-08-17 00:03:26 +09:00
2026-08-16 23:09:39 +09:00
2026-08-16 19:48:19 +09:00
S
Description
doslang mirror
914 KiB
Languages
C 94.2%
Python 3%
Assembly 2%
JavaScript 0.6%