Commit 32c89531b1
Changed files (2)
src
src/ir.cpp
@@ -17590,7 +17590,10 @@ static IrInstruction *ir_analyze_instruction_elem_ptr(IrAnalyze *ira, IrInstruct
false);
array_ptr_val->data.x_struct.fields[slice_ptr_index].data.x_ptr.mut = ConstPtrMutInfer;
} else {
- zig_unreachable();
+ ir_add_error(ira, elem_ptr_instruction->init_array_type,
+ buf_sprintf("expected array type or [_], found '%s'",
+ buf_ptr(&array_type->name)));
+ return ira->codegen->invalid_instruction;
}
}
test/compile_errors.zig
@@ -2,6 +2,19 @@ const tests = @import("tests.zig");
const builtin = @import("builtin");
pub fn addCases(cases: *tests.CompileErrorContext) void {
+ cases.add(
+ "using an unknown len ptr type instead of array",
+ \\const resolutions = [*][*]const u8{
+ \\ c"[320 240 ]",
+ \\ null,
+ \\};
+ \\comptime {
+ \\ _ = resolutions;
+ \\}
+ ,
+ "tmp.zig:1:21: error: expected array type or [_], found '[*][*]const u8'",
+ );
+
cases.add(
"comparison with error union and error value",
\\export fn entry() void {