parent
1b3aaacba2
commit
15302e84a4
|
@ -17914,6 +17914,15 @@ static TypeTableEntry *ir_analyze_instruction_unwrap_err_payload(IrAnalyze *ira,
|
||||||
return ira->codegen->builtin_types.entry_invalid;
|
return ira->codegen->builtin_types.entry_invalid;
|
||||||
TypeTableEntry *ptr_type = value->value.type;
|
TypeTableEntry *ptr_type = value->value.type;
|
||||||
|
|
||||||
|
// Because we don't have Pointer Reform yet, we can't have a pointer to a 'type'.
|
||||||
|
// Therefor, we have to check for type 'type' here, so we can output a correct error
|
||||||
|
// without asserting the assert below.
|
||||||
|
if (ptr_type->id == TypeTableEntryIdMetaType) {
|
||||||
|
ir_add_error(ira, value,
|
||||||
|
buf_sprintf("expected error union type, found '%s'", buf_ptr(&ptr_type->name)));
|
||||||
|
return ira->codegen->builtin_types.entry_invalid;
|
||||||
|
}
|
||||||
|
|
||||||
// This will be a pointer type because unwrap err payload IR instruction operates on a pointer to a thing.
|
// This will be a pointer type because unwrap err payload IR instruction operates on a pointer to a thing.
|
||||||
assert(ptr_type->id == TypeTableEntryIdPointer);
|
assert(ptr_type->id == TypeTableEntryIdPointer);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue