Add missing compile error when ptr used instead of array

in array literals.

Fixes #3524
This commit is contained in:
Andrew Kelley 2019-10-24 16:23:33 -04:00
parent 345042ecbc
commit 32c89531b1
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
2 changed files with 17 additions and 1 deletions

View File

@ -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;
}
}

View File

@ -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 {