✗
Failing This test is currently failing.
Failed: backend
Failure Output
Showing last 10 of 26 lines
backend_output_emitted.zig:1577:32: error: switch on type 'backend_output_emitted.koru_std.koru_compiler.CompilerContext'
return switch (nested_result_0) {
^~~~~~~~~~~~~~~
backend_output_emitted.zig:202:37: note: struct declared here
pub const CompilerContext = struct {
^~~~~~
error: the following command failed with 2 compilation errors:
/opt/homebrew/Cellar/zig/0.15.2_1/bin/zig build-exe -ODebug --dep backend_output --dep ast --dep ast_json --dep compiler_env --dep ast_functional --dep ast_serializer --dep log --dep emitter_helpers --dep tap_registry --dep runtime_registry --dep tap_transformer --dep template_processor --dep visitor_emitter --dep parser --dep expression_parser --dep comptime_eval --dep emit_build_zig --dep shape_checker --dep flow_checker --dep ast_transform --dep release_gate --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 --dep struct_literal -Mroot=/Users/larsde/src/koru/tests/regression/400_RUNTIME_FEATURES/430_COORDINATION/430_009_composed_timing/backend.zig -ODebug --dep ast --dep regex_engine --dep log --dep emitter_helpers --dep compiler_env --dep tap_registry --dep annotation_parser --dep type_registry --dep codegen_utils --dep transform_pass_runner --dep parser --dep ast_functional --dep flow_checker --dep ast_transform --dep shape_checker --dep release_gate --dep phantom_semantic_checker --dep auto_discharge_inserter --dep dead_strip --dep purity_analyzer --dep visitor_emitter --dep js_emitter --dep emit_build_zig --dep ast_serializer --dep runtime_registry --dep tap_transformer --dep template_processor --dep expression_parser --dep comptime_eval --dep errors --dep continuation_codegen --dep template_utils --dep liquid --dep struct_literal -Mbackend_output=/Users/larsde/src/koru/tests/regression/400_RUNTIME_FEATURES/430_COORDINATION/430_009_composed_timing/backend_output_emitted.zig -ODebug --dep errors -Mast=/Users/larsde/src/koru/src/ast.zig -ODebug --dep ast -Mast_json=/Users/larsde/src/koru/src/ast_json.zig -ODebug -Mcompiler_env=/Users/larsde/src/koru/tests/regression/400_RUNTIME_FEATURES/430_COORDINATION/430_009_composed_timing/compiler_env.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 annotation_parser --dep struct_literal --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 liquid --dep log --dep errors --dep annotation_parser --dep struct_literal --dep codegen_utils -Mtemplate_processor=/Users/larsde/src/koru/src/template_processor.zig -ODebug --dep ast --dep log --dep emitter_helpers --dep tap_registry --dep type_registry --dep annotation_parser --dep codegen_utils --dep file_types --dep comptime_eval -Mvisitor_emitter=/Users/larsde/src/koru/src/visitor_emitter.zig -ODebug --dep ast --dep ast_mangle --dep lexer --dep errors --dep log --dep type_registry --dep expression_parser --dep comptime_eval --dep annotation_parser --dep union_collector --dep module_resolver --dep file_types --dep struct_literal -Mparser=/Users/larsde/src/koru/src/parser.zig -ODebug --dep lexer --dep ast -Mexpression_parser=/Users/larsde/src/koru/src/expression_parser.zig -ODebug --dep ast --dep expression_parser -Mcomptime_eval=/Users/larsde/src/koru/src/comptime_eval.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 --dep expression_parser --dep phantom_parser -Mflow_checker=/Users/larsde/src/koru/src/flow_checker.zig -ODebug --dep ast --dep errors -Mast_transform=/Users/larsde/src/koru/src/ast_transform.zig -ODebug --dep ast --dep errors -Mrelease_gate=/Users/larsde/src/koru/src/release_gate.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 --dep log -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 --dep liquid -Mstruct_literal=/Users/larsde/src/koru/src/struct_literal.zig -ODebug -Mregex_engine=/Users/larsde/src/koru/src/regex_engine.zig -ODebug --dep ast --dep log --dep file_types --dep annotation_parser --dep struct_literal --dep codegen_utils -Mjs_emitter=/Users/larsde/src/koru/src/js_emitter.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 -Mfile_types=/Users/larsde/src/koru/src/file_types.zig -ODebug --dep ast -Mast_mangle=/Users/larsde/src/koru/src/ast_mangle.zig -ODebug -Mlexer=/Users/larsde/src/koru/src/lexer.zig -ODebug --dep ast -Munion_collector=/Users/larsde/src/koru/src/union_collector.zig -ODebug --dep config --dep log --dep file_types -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 erro
... [truncated - 9KB total] Code
// Test 430_009: Composed Timing - Multiple Independent Overrides
//
// Override BOTH the whole pipeline AND individual passes.
// Demonstrates that abstract event overrides compose cleanly.
~import std/compiler
~import std/time
~import std/io
// ============================================================================
// WHOLE PIPELINE TIMING (outer layer)
// ============================================================================
~std/compiler:coordinate = std/time:now()
| t pipeline_start |> std/compiler:coordinate.default(program_ast, allocator)
| coordinated c |> std/time:report(start: pipeline_start, label: "TOTAL PIPELINE") => coordinated c
| error e => error e
// ============================================================================
// FRONTEND PASS TIMING (inner layer - composes with above!)
// ============================================================================
~std/compiler:elaborate = std/time:now()
| t start |> std/compiler:elaborate.default(ctx)
| ctx c |> std/time:report(start, label: " elaborate") => ctx c
// ============================================================================
// THE PROGRAM
// ============================================================================
~std/io:print.ln("Compiled with composed timing!")
Expected output
Compiled with composed timing!
Flows
subflow ~coordinate click a branch to expand · @labels scroll to their anchor
now
subflow ~elaborate click a branch to expand · @labels scroll to their anchor
now
flow ~print.ln click a branch to expand · @labels scroll to their anchor
print.ln (expr: "Compiled with composed timing!")
Test Configuration
MUST_RUN
Post-validation Script:
#!/bin/bash
# Post-validation: Verify BOTH timing outputs appear
# This proves that the two overrides composed correctly
set -e
if [ ! -f "backend.err" ]; then
echo "❌ FAIL: No backend.err file found"
exit 1
fi
# Check for elaborate timing
if ! grep -q "⏱️.*elaborate:" backend.err; then
echo "❌ Missing elaborate timing output"
exit 1
fi
echo "✅ Frontend timing found"
# Check for total pipeline timing
if ! grep -q "⏱️.*TOTAL PIPELINE:" backend.err; then
echo "❌ Missing total pipeline timing output"
exit 1
fi
echo "✅ Total pipeline timing found"
# Display both timings
echo ""
echo "Timing results:"
grep "⏱️" backend.err
echo ""
echo "🎉 Composed timing working! Both overrides fire independently."
exit 0