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 }
| done { }

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

~take(numbers: [1, 2, 3])
| done |> _
input.kz

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 7103760 panic: attempt to unwrap error: ArrayLiteralInvalidTarget
/Users/larsde/src/koru/src/emitter_helpers.zig:7036:9: 0x102ff7bbb in emitArrayLiteralForField (backend)
        return error.ArrayLiteralInvalidTarget;
        ^
/Users/larsde/src/koru/src/emitter_helpers.zig:4185:21: 0x102ff4d87 in emitArgs (backend)
                    try emitArrayLiteralForField(emitter, ctx, field_info, arg.value);
                    ^
/Users/larsde/src/koru/src/emitter_helpers.zig:3800:5: 0x102ffc0cb in emitInvocation (backend)
    try emitArgs(emitter, ctx, invocation.args, &invocation.path);
    ^
/Users/larsde/src/koru/src/emitter_helpers.zig:3293:13: 0x10301f413 in emitFlow (backend)
            try emitInvocation(emitter, ctx, &flow.invocation, first_result);
            ^
/Users/larsde/src/koru/src/visitor_emitter.zig:1225:17: 0x103056353 in visitItem (backend)
                try emitter.emitFlow(self.code_emitter, &ctx, &flow);
                ^
/Users/larsde/src/koru/src/visitor_emitter.zig:593:13: 0x10306f873 in emit (backend)
            try self.visitItem(item, source_file.module_annotations, source_file.items);
            ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_TYPES_VALUES/030_014_array_literal_invalid_target/backend_output_emitted.zig:1183:57: 0x102f394bf in handler (backend)
                    visitor_emitter.emit(ctx.ast) catch unreachable;
                                                        ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_TYPES_VALUES/030_014_array_literal_invalid_target/backend_output_emitted.zig:1037:97: 0x102f23827 in handler (backend)
                                const nested_result_1 = koru_std.compiler.emit_zig_event.handler(.{ .ctx = c2 });
                                                                                                ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_TYPES_VALUES/030_014_array_literal_invalid_target/backend_output_emitted.zig:675:121: 0x102f126df in handler (backend)
                                                        const nested_result_4 = koru_std.compiler.emission_event.handler(.{ .ctx = c4 });
                                                                                                                        ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_TYPES_VALUES/030_014_array_literal_invalid_target/backend.zig:9324:81: 0x102f12363 in emit (backend)
        const result = backend_output.koru_std.compiler.coordinate_event.handler(.{ .program_ast = source_ast, .allocator = allocator });
                                                                                ^
/Users/larsde/src/koru/tests/regression/000_CORE_LANGUAGE/030_TYPES_VALUES/030_014_array_literal_invalid_target/backend.zig:9418:51: 0x102f12f7f in main (backend)
    const generated_code = try RuntimeEmitter.emit(compile_allocator, final_ast);
                                                  ^
/opt/homebrew/Cellar/zig/0.15.1/lib/zig/std/start.zig:627:37: 0x102f1a553 in main (backend)
            const result = root.main() catch |err| {
                                    ^
???:?:?: 0x19b659d53 in ??? (???)
???:?:?: 0x0 in ??? (???)
/Users/larsde/src/koru/scripts/regression_lib.sh: line 33:  8434 Abort trap: 6           ./backend output

Test Configuration

MUST_FAIL