✓
Passing This code compiles and runs correctly.
Code
// TEST: Auto-proc synthesis must fail when shapes don't match
//
// MUST_FAIL: Missing proc
//
// When input/output don't match, the compiler cannot synthesize a proc.
// This event has different field names - no auto-synthesis possible.
~import "$std/io"
// Input has 'input_val', output has 'output_val' - MISMATCH
~pub event mismatched { input_val: i32 }
| done i32
// This should fail - no proc and can't synthesize
~mismatched(input_val: 42)
| done d |> std.io:print.ln("should not reach here")
Error Verification
Expected Error Pattern
Missing proc implementationActual Compiler Output
error[KORU100]: unused binding 'd'
--> flow_check:17:0
❌ Compiler coordination error: Flow validation failed
error: CompilerCoordinationFailed
/Users/larsde/src/koru/tests/regression/300_ADVANCED_FEATURES/350_AUTO_PROC/350_003_mismatch_must_error/backend.zig:10741:17: 0x102f464af in emit (backend)
return error.CompilerCoordinationFailed;
^
/Users/larsde/src/koru/tests/regression/300_ADVANCED_FEATURES/350_AUTO_PROC/350_003_mismatch_must_error/backend.zig:10825:28: 0x102f472b7 in main (backend)
const generated_code = try RuntimeEmitter.emit(compile_allocator, final_ast);
^Test Configuration
MUST_FAIL