Commit 32c89531b1

Andrew Kelley <andrew@ziglang.org>
2019-10-24 22:23:33
Add missing compile error when ptr used instead of array
in array literals. Fixes #3524
1 parent 345042e
Changed files (2)
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 {