✓
Passing This code compiles and runs correctly.
Code
// PIN (enforcement): reading a String after free is use-after-discharge.
~import std/string
~import std/io
~std/string:from-page(text: "hello")
| ok s |> std/string:free(s) |> std/string:read(s)
| slice text |> std/io:print.ln("{{ text:s }}")
| err _ |> _
Must contain:
Use-after-dischargeError Verification
Actual Compiler Output
error[KORU030]: Use-after-discharge: binding 's' was already discharged and cannot be used
--> phantom_semantic_check:6:0
❌ Compiler coordination error: Phantom semantic validation failed
error: CompilerCoordinationFailed
/Users/larsde/src/koru/tests/regression/600_STDLIB/610_STRING/610_005_reject_use_after_free/backend.zig:94:13: 0x1052621b7 in emit (backend)
return error.CompilerCoordinationFailed;
^
/Users/larsde/src/koru/tests/regression/600_STDLIB/610_STRING/610_005_reject_use_after_free/backend.zig:190:28: 0x105262ea3 in main (backend)
const generated_code = try RuntimeEmitter.emit(compile_allocator, final_ast);
^Test Configuration
MUST_FAIL