✓
Passing Passing: the compiler rejects this program as expected.
Code
// PIN: a module declares each tor once across facet companions too —
// 140_024 covers the part boundary, 210_262 the same file. A `.kz`/`.kjs`
// facet pair repeating a name silently shadowed (registry dedup), and with
// matching signatures emitted two `greet_event` structs — a Zig duplicate-
// member error no caret could map back. KORU111 does not cover it: no `.k`
// contract exists. The caret lands on the redeclaring companion decl.
~import std/io
~import app/helper
~app/helper:greet(name: "World"): g |> std/io:print.ln("{{ g:s }}")
Supporting Files
const std = @import("std");
~pub tor greet { name: string } -> string
~proc greet|js {
return "Hello from kjs";
}
const std = @import("std");
~pub tor greet { name: string } -> string
~proc greet|zig {
return "Hello from kz";
}
Actual compiler output
error[KORU202]: tor 'greet' already declared — redeclared by companion 'helper.kz'
--> /Users/larsde/src/koru/tests/regression/100_MODULE_SYSTEM/140_FILE_LAYOUT/140_029_dup_tor_across_facets_refused/helper.kz:3:0
hint: a module declares each tor once — keep each declaration in one placeFrontend must reject with:
CONTAINS error[KORU202]
CONTAINS 'greet'
CONTAINS helper.kz
ERROR_AT 3Flows
flow ~greet click a branch to expand · @labels scroll to their anchor
greet (name: "World")
Test Configuration
MUST_ERROR
koru.json:
{
"paths": {
"std": "../../../../../koru_std",
"app": "."
}
}