ludic/selfhost/backend
Orkuncakilkaya dc75a5a5ab feat(lang): a name is defined once, a local once per block, and a result is always returned
L1. Two vars, consts, enums, properties or events of one name in a program are an error naming
both places (functions already were); the first used to win silently. A let / var of a name its
own block already declared is an error (it used to shadow). A function with a result type whose
body can reach its end without a return is an error, asked structurally of the body - a return,
an if/else or a match with a default arm whose every branch ends - rather than handing back
whatever the result slot held. The game, the lab and every package example pass all three;
the lab had one harmless shadow, and the game's split screens had two real bugs of the kind.
examples/rejected/ holds the four refusals, checked by the test runner's new reject_case.
Seed regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 23:55:20 +03:00
..
game fix(events): a listener's return ends that listener, not the dispatch 2026-09-23 17:42:18 +03:00
stdlib feat(text): Text.to_float; a void function's return <value> is an error 2026-09-23 19:19:28 +03:00
emit_addr.ludic feat(compiler): a slice index is checked against its length 2026-09-22 20:54:12 +03:00
emit_call.ludic feat(lang): strict numbers in float files; render3d on float 2026-09-23 17:13:25 +03:00
emit_core.ludic feat(lang): a name is defined once, a local once per block, and a result is always returned 2026-09-23 23:55:20 +03:00
emit_decl.ludic feat(lang): a name is defined once, a local once per block, and a result is always returned 2026-09-23 23:55:20 +03:00
emit_expr.ludic feat(lang): strict numbers in float files; render3d on float 2026-09-23 17:13:25 +03:00
emit_float.ludic feat(lang): strict numbers in float files; render3d on float 2026-09-23 17:13:25 +03:00
emit_head.ludic carry: the runtime and render3d work Maroon Lake builds against 2026-09-23 15:55:02 +03:00
emit_intrin.ludic feat(windows): a Windows target for ludicc, and the compiler builds itself there 2026-09-13 01:59:41 +03:00
emit_intrin2.ludic carry: the runtime and render3d work Maroon Lake builds against 2026-09-23 15:55:02 +03:00
emit_mem.ludic refactor(selfhost): reorganise into concern-based subdirectories 2026-08-31 00:26:02 +03:00
emit_new.ludic feat(lang): float and double types with ordinary operators 2026-09-16 16:13:31 +03:00
emit_stmt.ludic feat(lang): a name is defined once, a local once per block, and a result is always returned 2026-09-23 23:55:20 +03:00