✓
Passing This code compiles and runs correctly.
Code
const std = @import("std");
~import app/test_lib/logger
~event compute { x: i32 }
| result i32
~event format { value: i32 }
| formatted []const u8
~proc compute|zig {
std.debug.print("compute({d})\n", .{x});
return .{ .result = x * 2 };
}
~proc format|zig {
std.debug.print("format({d})\n", .{value});
return .{ .formatted = "formatted" };
}
~compute(x: 42)
| result r |> format(value: r)
| formatted |> _
Actual
[TAP] Audit: koru:start.done
compute(42)
[TAP] Audit: input:compute.result
format(84)
[TAP] Audit: input:format.formatted
[TAP] Audit: koru:end.done
Expected output
[TAP] Audit: koru:start.done
compute(42)
[TAP] Audit: input:compute.result
format(84)
[TAP] Audit: input:format.formatted
[TAP] Audit: koru:end.done
Imported Files
// Logger with module wildcard + metatype tap
// BUG: String interpolation doesn't substitute metatype bindings
// {{a.source}} should become _profile_0.source but doesn't
~import std/taps
~import std/io
// VALID: Module wildcard (input:*) + metatype (Audit)
// Audit metatype works on ANY event in the main module
~tap(input:* -> *)
| Audit a |> std/io:print.ln("[TAP] Audit: {{a.source:s}}.{{a.branch:s}}")
Test Configuration
MUST_RUN