✓
Passing This code compiles and runs correctly.
Code
// PIN (GREEN): a host line that HAPPENS to start with a Koru module keyword is
// still a host line when it assigns — `part = std.mem.trim(...)` names a LOCAL,
// while `part name` declares a part. The keyword-prefix scan refused the
// assignment as an unmarked Koru construct (PARSE003), which made a legal Zig
// local unspellable anywhere in a `.kz`. Found 2026-09-17 writing the
// disjunction atom's parser in koru_std/refine.kz, where a local is named
// `part` because it holds one part of a `|`-split.
//
// Expected: compiles and runs — the frontend passes both lines through as host.
const std = @import("std");
fn trimPart(text: []const u8) []const u8 {
var part = std.mem.trim(u8, text, " \t");
part = std.mem.trim(u8, part[1..], " \t");
return part;
}
fn trimTor(text: []const u8) []const u8 {
var tor = std.mem.trim(u8, text, " \t");
tor = std.mem.trim(u8, tor[1..], " \t");
return tor;
}
~import std/io
~std/io:print.ln("held")
Actual
held
Expected output
held
Flows
flow ~print.ln click a branch to expand · @labels scroll to their anchor
print.ln (expr: "held")
Test Configuration
MUST_RUN