○
Planned This feature is planned but not yet implemented.
Rework as a cross-module private-event VISIBILITY test. KORU111 Rule 1 (private event in .k rejected) was removed 2026-07-17 — private events are legal in a .k full program. The surviving intent here is that a PRIVATE event must not be callable across a module boundary; that needs cross-module visibility enforcement (see 110_002 TODO) before this can be re-pinned.
Failure Output
error[KORU044]: cannot access private event 'app.contract:compute' from module 'input'
--> tests/regression/100_MODULE_SYSTEM/140_FILE_LAYOUT/140_006_reject_private_event_in_contract/input.kz:10:0
|
10 | ~app/contract:compute(x: 42): v |> std/io:print.ln("{{ v:d }}")
| ^
hint: mark the tor as public with ~pub tor Code
// Phase 3 captured failing test: private event in .k must be rejected
// with KORU111. Today the compiler accepts it silently; this test pins
// the violation until the validator pass lands.
const std = @import("std");
~import std/io
~import app/contract
~app/contract:compute(x: 42): v |> std/io:print.ln("{{ v:d }}")
Frontend must reject with:
CONTAINS KORU111
CONTAINS private event in contract fileFlows
flow ~compute click a branch to expand · @labels scroll to their anchor
compute (x: 42)
Imported Files
const std = @import("std");
~proc compute|zig {
return .{ .done = x + 100 };
}