✓
Passing Passing: the compiler rejects this program as expected.
Code
// PIN (documented gap, red on purpose): a store whose ONLY column is a
// named owned field loses the phantom through the `| full` rejection
// record — free(s: f.text) reports "no tracked phantom state". Add ANY
// scalar sibling column ({ text: ..., n: i64 }) and the same code tracks
// and compiles; the anonymous single-field form ({ *String<instance!> })
// also tracks. Sibling of 690_233 (cross-module fields drop out of the
// record even WITH siblings).
//
// Found by kopium d_turns' draft store, which went anonymous instead.
// When the tracker learns the one-named-column record, flip to MUST_RUN.
import std/string
import std/store
std/store:new(draft, capacity: 2) { text: *std/string:String<instance!> }
tor seed {}
seed = std/string:from-page(text: "")
| ok a |> std/string:take(s: a): m |> std/store:insert(draft) { text: m }
| row _ |> _
| full f |> std/string:free(s: f.text)
| err _ |> _
seed()
Actual compiler output
error[KORU030]: Phantom state mismatch: argument 's' has no tracked phantom state, but event requires one of '<!view|!instance>'.
--> tests/regression/600_STDLIB/690_STORE/690_235_single_named_owned_field_full_arm/input.k:21:4
❌ Compiler coordination error: Phantom semantic validation failed
(set KORU_BACKEND_TRACE=1 for the backend return trace)Must contain:
KORU030Flows
flow ~new click a branch to expand · @labels scroll to their anchor
new (draft, capacity: 2, source: text: *std/string:String<instance!>)
subflow ~seed click a branch to expand · @labels scroll to their anchor
from-page (text: "")
flow ~seed click a branch to expand · @labels scroll to their anchor
seed
Test Configuration
MUST_ERROR