057 cross module comptime callsite fields

○ Planned This feature is planned but not yet implemented.

Cross-module comptime continuation missing raw AST fields (invocation, item) — emitArgs() injects program/allocator by name but has no mechanism for *const Invocation/*const Item pointers that transform events require

Failure Output

Showing last 10 of 24 lines
error: the following command failed with 1 compilation errors:
/opt/homebrew/Cellar/zig/0.15.1/bin/zig build-exe -ODebug --dep ast --dep ast_functional --dep ast_serializer --dep log --dep emitter_helpers --dep tap_registry --dep runtime_registry --dep tap_transformer --dep visitor_emitter --dep parser --dep emit_build_zig --dep shape_checker --dep flow_checker --dep phantom_semantic_checker --dep auto_discharge_inserter --dep dead_strip --dep purity_analyzer --dep errors --dep type_registry --dep annotation_parser --dep transform_pass_runner --dep codegen_utils --dep continuation_codegen --dep template_utils --dep liquid -Mroot=/Users/larsde/src/koru/tests/regression/200_COMPILER_FEATURES/210_PARSER/210_057_cross_module_comptime_callsite_fields/backend.zig -ODebug --dep errors -Mast=/Users/larsde/src/koru/src/ast.zig -ODebug --dep ast -Mast_functional=/Users/larsde/src/koru/src/ast_functional.zig -ODebug --dep ast -Mast_serializer=/Users/larsde/src/koru/src/ast_serializer.zig -ODebug -Mlog=/Users/larsde/src/koru/src/log.zig -ODebug --dep ast --dep errors --dep log --dep compiler_config --dep type_registry --dep codegen_utils --dep tap_registry --dep compiler_passes/purity_helpers -Memitter_helpers=/Users/larsde/src/koru/src/emitter_helpers.zig -ODebug --dep ast --dep errors --dep log --dep glob_pattern_matcher -Mtap_registry=/Users/larsde/src/koru/src/tap_registry.zig -ODebug -Mruntime_registry=/Users/larsde/src/koru/src/runtime_registry.zig -ODebug --dep ast --dep log --dep tap_registry --dep emitter_helpers --dep compiler_passes/purity_helpers -Mtap_transformer=/Users/larsde/src/koru/src/tap_transformer.zig -ODebug --dep ast --dep log --dep emitter_helpers --dep tap_registry --dep type_registry --dep annotation_parser --dep codegen_utils -Mvisitor_emitter=/Users/larsde/src/koru/src/visitor_emitter.zig -ODebug --dep ast --dep lexer --dep errors --dep log --dep type_registry --dep expression_parser --dep union_collector --dep module_resolver -Mparser=/Users/larsde/src/koru/src/parser.zig -ODebug -Memit_build_zig=/Users/larsde/src/koru/src/emit_build_zig.zig -ODebug --dep ast --dep errors --dep log --dep phantom_parser --dep type_inference --dep branch_checker -Mshape_checker=/Users/larsde/src/koru/src/shape_checker.zig -ODebug --dep ast --dep errors --dep log --dep branch_checker --dep annotation_parser -Mflow_checker=/Users/larsde/src/koru/src/flow_checker.zig -ODebug --dep ast --dep errors --dep log --dep phantom_parser -Mphantom_semantic_checker=/Users/larsde/src/koru/src/phantom_semantic_checker.zig -ODebug --dep ast --dep ast_functional --dep errors --dep log --dep phantom_parser -Mauto_discharge_inserter=/Users/larsde/src/koru/src/auto_discharge_inserter.zig -ODebug --dep ast -Mdead_strip=/Users/larsde/src/koru/src/dead_strip.zig -ODebug --dep ast -Mpurity_analyzer=/Users/larsde/src/koru/src/compiler_passes/purity_analyzer.zig -ODebug -Merrors=/Users/larsde/src/koru/src/errors.zig -ODebug --dep ast --dep log -Mtype_registry=/Users/larsde/src/koru/src/type_registry.zig -ODebug -Mannotation_parser=/Users/larsde/src/koru/src/annotation_parser.zig -ODebug --dep ast --dep log --dep annotation_parser --dep template_utils --dep ast_functional --dep liquid -Mtransform_pass_runner=/Users/larsde/src/koru/src/transform_pass_runner.zig -ODebug -Mcodegen_utils=/Users/larsde/src/koru/src/codegen_utils.zig -ODebug --dep ast --dep codegen_utils -Mcontinuation_codegen=/Users/larsde/src/koru/src/continuation_codegen.zig -ODebug --dep ast -Mtemplate_utils=/Users/larsde/src/koru/src/template_utils.zig -ODebug -Mliquid=/Users/larsde/src/koru/src/liquid.zig -ODebug -Mcompiler_config=/Users/larsde/src/koru/src/compiler_config.zig -ODebug --dep ast --dep lexer -Mcompiler_passes/purity_helpers=/Users/larsde/src/koru/src/compiler_passes/purity_helpers.zig -ODebug -Mglob_pattern_matcher=/Users/larsde/src/koru/src/glob_pattern_matcher.zig -ODebug -Mlexer=/Users/larsde/src/koru/src/lexer.zig -ODebug --dep lexer --dep ast -Mexpression_parser=/Users/larsde/src/koru/src/expression_parser.zig -ODebug --dep ast -Munion_collector=/Users/larsde/src/koru/src/union_collector.zig -ODebug --dep config --dep log -Mmodule_resolver=/Users/larsde/src/koru/src/module_resolver.zig -ODebug -Mphantom_parser=/Users/larsde/src/koru/koru_std/phantom_parser.zig -ODebug --dep ast --dep errors -Mtype_inference=/Users/larsde/src/koru/src/type_inference.zig -ODebug -Mbranch_checker=/Users/larsde/src/koru/src/branch_checker.zig -ODebug --dep log -Mconfig=/Users/larsde/src/koru/src/config.zig --cache-dir .zig-cache --global-cache-dir /var/folders/9k/sprb5df11_79lbnlyttj6sfm0000gn/T/koru-regression-cache --name backend --zig-lib-dir /opt/homebrew/Cellar/zig/0.15.1/lib/zig/ --listen=-

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

error: the following build command failed with exit code 1:
.zig-cache/o/80314578a0e198e359bb131cd406e477/build /opt/homebrew/Cellar/zig/0.15.1/bin/zig /opt/homebrew/Cellar/zig/0.15.1/lib/zig /Users/larsde/src/koru/tests/regression/200_COMPILER_FEATURES/210_PARSER/210_057_cross_module_comptime_callsite_fields .zig-cache /var/folders/9k/sprb5df11_79lbnlyttj6sfm0000gn/T/koru-regression-cache --seed 0x412e7c6a -Z813e601e23976ed6

Code

// TEST: Cross-module comptime call site must include all handler fields
//
// When a [comptime|norun] event is in an imported module and its flow
// contains continuations that call other events (e.g. std.io:print.ln),
// the emitted comptime call site must pass ALL fields the handler expects.
//
// KNOWN BUG: Same-file comptime calls pass all five fields:
//   .{ .expr = "...", .program = program, .allocator = allocator,
//      .invocation = ..., .item = ... }
// But cross-module comptime calls only emit three:
//   .{ .expr = "...", .program = program, .allocator = allocator }
// Missing: invocation and item.
//
// This is Bug 1 from the cross-module comptime emission path.
// See also: 210_056 (dispatch fix), 210_058 (return type fix)
// Real-world reproducer: koru-libs/pq/examples/02_sql.kz

~import "$app/comptime_lib"
~import "$std/io"

~[comptime] app.comptime_lib:greet(name: "world")
| ok msg |> std.io:print.ln("{{msg}}")
input.kz

Imported Files

// Library module with a [comptime|norun] event that has branches.
//
// The flow in input.kz uses a continuation (print.ln) after the | ok branch.
// This forces the emitter to generate a call site for print.ln inside
// the comptime flow — which is where the missing fields bug manifests.

const std = @import("std");

~[comptime|norun] pub event greet { name: []const u8 }
| ok []const u8

~proc greet {
    _ = name;
    return .{ .ok = "hello" };
}
comptime_lib.kz