✓
Passing Passing: the compiler rejects this program as expected.
Code
// PINS: a proc's declared name must be one a call site can spell. The
// parenthesised tail reads into the name — registering the impl under
// "evil(x)" while the tor it means to serve is `evil` — so the tor is
// left without a proc and the mismatch lands on whoever calls it.
const std = @import("std");
~tor evil { x: i64 } -> i64
~proc evil(x)|zig { return x; }
Actual compiler output
error[PARSE003]: proc name 'evil(x)' is not one a call site can spell — each '.'-separated piece is an identifier (or '*' for a transform glob)
--> tests/regression/200_COMPILER_FEATURES/210_PARSER/210_304_proc_name_with_call_tail_refused/input.kz:8:7
|
8 | ~proc evil(x)|zig { return x; }
| ^Frontend must reject with:
CONTAINS error[PARSE003]
ERROR_AT 8
NOT_CONTAINS output_emitted.zigTest Configuration
MUST_ERROR