060 proc abstract override

✓ Passing This code compiles and runs correctly.

Code

// Test: ~proc with module qualifier for abstract event override
//
// This tests using ~proc input:greet { ... } syntax to provide
// a proc implementation for an abstract event.
//
// This is the proc-based equivalent of ~input:greet = flow syntax.
// The difference: proc contains Zig code, flow contains event chains.

const std = @import("std");

// Abstract event WITHOUT default implementation
~[abstract] event greet { name: []const u8 }
| greeted []const u8

// Provide proc implementation using module-qualified syntax
// This should be equivalent to ~input:greet = greeted { message: name }
~proc input:greet {
    std.debug.print("{s}\n", .{name});
    return .{ .greeted = name };
}

// Use the event
~greet(name: "hello from proc override")
| greeted _ |> _
input.kz

Expected

hello from proc override

Actual

hello from proc override

Test Configuration

MUST_RUN