✓
Passing Passing: the compiler rejects this program as expected.
Code
// PIN (2026-10-05): a MODULE-PATH call inside a produce (`->`) expression
// is illegal like any other — `std/io` reads as a complete path atom to
// the expression parser's prefix mode, and the `:` truncated the parse
// before the call, so textContainsCall judged the text clean and the call
// leaked verbatim into emitted Zig (raw Stage-D error on
// `return libs/ogun:mesh.vert(...)` measured in armored-rail-ogun/rail).
// The admission wall now uses parseAll: TrailingGarbage routes the whole
// text to the raw scan, which judges `name(` as a call regardless.
import std/io
pub tor n { s: string } -> i64
n -> std/io:print.ln(s)
n(s: "x"): v |> std/io:print.ln("{{ v:d }}")
Actual compiler output
error[KORU104]: nested call in a produce (`->`) expression — calls are not expressions; use tor chaining: bind the result first
--> tests/regression/320_CONTROL_FLOW/320_175_namespaced_call_in_produce/input.k:12:0
|
12 | n -> std/io:print.ln(s)
| ^
hint: rewrite as `tor(args): x |> ...` and use `x` hereFrontend must reject with:
CONTAINS error[KORU104
CONTAINS nested call
CONTAINS chainFlows
flow ~n click a branch to expand · @labels scroll to their anchor
n (s: "x")
Test Configuration
MUST_ERROR