014 array literal invalid target

✓ Passing This code compiles and runs correctly.

Code

// TEST: Array literal must target a slice type
//
// Koru array literal syntax ([a, b, c]) is only valid when the target
// parameter is a slice (e.g. []const i32). Using it for a non-slice
// parameter must fail.

~event take { numbers: i32 }

~proc take|zig {
    return .{ .done = {} };
}

~take(numbers: [1, 2, 3])
input.kz

Must contain:

ArrayLiteralInvalidTarget

Error Verification

Expected Error Pattern

Array literal must target a slice type

This test MUST FAIL to ensure array literals only apply to slice parameters.
Expected error: array literal used for non-slice field (numbers: i32).

If this test passes, the compiler is accepting untyped/invalid array literals.

Actual Compiler Output

thread 57313132 panic: attempt to unwrap error: ArrayLiteralInvalidTarget
/Users/larsde/src/koru/src/emitter_helpers.zig:7707:9: 0x10238327b in emitArrayLiteralForField (backend_output)
        return error.ArrayLiteralInvalidTarget;
        ^
/Users/larsde/src/koru/src/emitter_helpers.zig:4741:21: 0x10238052f in emitArgs (backend_output)
                    try emitArrayLiteralForField(emitter, ctx, field_info, arg.value);
                    ^
/Users/larsde/src/koru/src/emitter_helpers.zig:4351:5: 0x10238778b in emitInvocation (backend_output)
    try emitArgs(emitter, ctx, invocation.args, &invocation.path);
    ^
/Users/larsde/src/koru/src/emitter_helpers.zig:3615:9: 0x1023b79c3 in emitFlow (backend_output)
        try emitInvocation(emitter, ctx, &flow.invocation, binding);
        ^
/Users/larsde/src/koru/src/visitor_emitter.zig:1238:17: 0x1023eeb1b in visitItem (backend_output)
                try emitter.emitFlow(self.code_emitter, &ctx, &flow);
                ^
/Users/larsde/src/koru/src/visitor_emitter.zig:606:13: 0x10240828b in emit (backend_output)
            try self.visitItem(item, source_file.module_annotations, source_file.items);
            ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_LITERALS/030_014_array_literal_invalid_target/backend_output_emitted.zig:1223:57: 0x1022a9c5b in handler (backend_output)
                    visitor_emitter.emit(ctx.ast) catch unreachable;
                                                        ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_LITERALS/030_014_array_literal_invalid_target/backend_output_emitted.zig:1081:97: 0x1022a22d3 in handler (backend_output)
                                const nested_result_1 = koru_std.compiler.emit_zig_event.handler(.{ .ctx = c2 });
                                                                                                ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_LITERALS/030_014_array_literal_invalid_target/backend_output_emitted.zig:684:121: 0x1022a0b8b in handler (backend_output)
                                                        const nested_result_4 = koru_std.compiler.emission_event.handler(.{ .ctx = c4 });
                                                                                                                        ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_LITERALS/030_014_array_literal_invalid_target/backend_output_emitted.zig:6692:62: 0x1022a07d3 in koru_coordinate (backend_output)
    const result = koru_std.compiler.coordinate_event.handler(.{
                                                             ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_LITERALS/030_014_array_literal_invalid_target/backend.zig:90:39: 0x102664f4b in emit (backend)
        const result = koru_coordinate(source_ast, &allocator);
                                      ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_LITERALS/030_014_array_literal_invalid_target/backend.zig:184:51: 0x102665803 in main (backend)
    const generated_code = try RuntimeEmitter.emit(compile_allocator, final_ast);
                                                  ^
/opt/homebrew/Cellar/zig/0.15.2_1/lib/zig/std/start.zig:627:37: 0x10266b3a3 in main (backend)
            const result = root.main() catch |err| {
                                    ^
???:?:?: 0x19c815d53 in ??? (???)
???:?:?: 0x0 in ??? (???)
/Users/larsde/src/koru/scripts/regression_lib.sh: line 144: 15425 Abort trap: 6           ./backend output

Test Configuration

MUST_FAIL