035 interpreter binding args

✗ Failing This test is currently failing.

Failed: backend-exec

Error Details

install

Failure Output

Showing last 10 of 27 lines
error: the following command failed with 2 compilation errors:
/opt/homebrew/Cellar/zig/0.15.2_1/bin/zig build-exe -ODebug --dep koru_parser --dep koru_ast=ast --dep koru_errors=errors --dep ast --dep flow_parser --dep liquid -Mroot=/Users/larsde/src/koru/tests/regression/400_RUNTIME_FEATURES/430_RUNTIME/430_035_interpreter_binding_args/output_emitted.zig -ODebug --dep ast --dep lexer --dep errors --dep type_registry --dep expression_parser --dep union_collector --dep module_resolver -Mkoru_parser=/usr/local/lib/koru/src/parser.zig -ODebug --dep errors -Mast=/usr/local/lib/koru/src/ast.zig -ODebug -Merrors=/usr/local/lib/koru/src/errors.zig -ODebug --dep ast --dep lexer --dep errors --dep expression_parser -Mflow_parser=/usr/local/lib/koru/src/flow_parser.zig -ODebug -Mliquid=/usr/local/lib/koru/src/liquid.zig -ODebug -Mlexer=/usr/local/lib/koru/src/lexer.zig -ODebug --dep ast --dep log -Mtype_registry=/usr/local/lib/koru/src/type_registry.zig -ODebug --dep lexer --dep ast -Mexpression_parser=/usr/local/lib/koru/src/expression_parser.zig -ODebug --dep ast -Munion_collector=/usr/local/lib/koru/src/union_collector.zig -ODebug --dep config --dep log -Mmodule_resolver=/usr/local/lib/koru/src/module_resolver.zig -ODebug -Mlog=/usr/local/lib/koru/src/log.zig -ODebug --dep log -Mconfig=/usr/local/lib/koru/src/config.zig --cache-dir .zig-cache --global-cache-dir /Users/larsde/.cache/zig --name output --zig-lib-dir /opt/homebrew/Cellar/zig/0.15.2_1/lib/zig/ --listen=-

Build Summary: 0/3 steps succeeded; 1 failed
install transitive failure
+- install output transitive failure
   +- compile exe output Debug native 2 errors

error: the following build command failed with exit code 1:
.zig-cache/o/ab7734ce170e335c623eadd760da5c97/build /opt/homebrew/Cellar/zig/0.15.2_1/bin/zig /opt/homebrew/Cellar/zig/0.15.2_1/lib/zig /Users/larsde/src/koru/tests/regression/400_RUNTIME_FEATURES/430_RUNTIME/430_035_interpreter_binding_args .zig-cache /Users/larsde/.cache/zig --seed 0xe03b18c -Z9035529ce24adf1b

Code

// Test: Interpreter binding reference evaluation in args
//
// This tests that when we chain events like:
//   ~first() | ok x |> second(arg: x.field)
//
// The interpreter evaluates x.field against the environment,
// NOT passing the literal string "x.field".

~import "$std/runtime"
~import "$std/interpreter"
~import "$std/io"

const std = @import("std");

// Event that produces a value
~pub event produce {}
| value []const u8

~proc produce {
    return .{ .value = "42" };
}

// Event that consumes a value and echoes it
~pub event consume { n: []const u8 }
| echoed []const u8

~consume = std.io:print.ln("[consume] received n = '{{n:s}}'")
    |> echoed { got: n }

~std.runtime:register(scope: "test") {
    produce
    consume
}

// The flow we'll interpret:
// ~produce() | value v |> consume(n: v.num)
//
// Expected: consume receives "42" (the actual value)
// Bug: consume receives "v.num" (the literal string)

const TEST_FLOW =
    \\~produce()
    \\| value v |> consume(n: v.num)
;

~std.interpreter:run(source: TEST_FLOW, dispatcher: dispatch_test)
| result r |> std.io:print.ln("Result: {{ r.value.branch:s }}")
| exhausted e |> std.io:print.ln("Exhausted: {{ e.last_event:s }}")
| parse_error e |> std.io:print.ln("Parse error: {{ e.message:s }}")
| validation_error e |> std.io:print.ln("Validation error: {{ e.message:s }}")
| dispatch_error e |> std.io:print.ln("Dispatch error: {{ e.message:s }}")
input.kz

Expected

[consume] received n = '42'
Result: echoed

Test Configuration

MUST_RUN