From d274751e89f75cc0f0e25c6e5e87ef91b64597ee Mon Sep 17 00:00:00 2001 From: zinc Date: Wed, 14 Oct 2026 08:30:01 +0000 Subject: zc: untyped local const, c precedence for && and ||, import fixes for every module const name = value; inside a function declares a local constant that takes the initializer's type. the let quick fix now writes a bare const. the self-hosted compiler bound || tighter than &&, unlike zc0 and the readme. no existing source mixed them without parentheses, so only new code was affected. missing-name diagnostics and their quick fixes now search every module: rt, core, run, loaded files, and std, icon and actor scanned from source, including static groups (std.Text.itoa). typos suggest module exports (putc -> rt.put_c) and get a change-to fix. --- tests/langerrors/const_local_no_init.zc | 8 ++++++++ tests/langerrors/const_local_write.zc | 9 +++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/langerrors/const_local_no_init.zc create mode 100644 tests/langerrors/const_local_write.zc (limited to 'tests/langerrors') diff --git a/tests/langerrors/const_local_no_init.zc b/tests/langerrors/const_local_no_init.zc new file mode 100644 index 0000000..15832a1 --- /dev/null +++ b/tests/langerrors/const_local_no_init.zc @@ -0,0 +1,8 @@ +namespace; +include rt; + +// expect: a const needs an initializer +fn main() { + const k; + return 0; +} diff --git a/tests/langerrors/const_local_write.zc b/tests/langerrors/const_local_write.zc new file mode 100644 index 0000000..31220be --- /dev/null +++ b/tests/langerrors/const_local_write.zc @@ -0,0 +1,9 @@ +namespace; +include rt; + +// expect: const storage cannot be modified +fn main() { + const k = 5; + k = 6; + rt.put_n(k); +} -- cgit v1.2.3