authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-12-18 00:25:07-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-12-18 00:25:07-05:00
log83a668b9caac7a9ae7ed2b2e9bf87f34ec2ab1eb
tree17220de13f64782c039d9bf56fdaff8376d6f33b
parent9f08bfb38ddbe4b066953d68f2f10e9d83ad4e74

IR: unreachable has lowest priority when resolving peer types


1 files changed, 4 insertions(+), 4 deletions(-)

src/ir.cpp+4-4
......@@ -4248,6 +4248,10 @@ static TypeTableEntry *ir_resolve_peer_types(IrAnalyze *ira, AstNode *source_nod
42484248 TypeTableEntry *prev_type = prev_inst->type_entry;
42494249 if (cur_type->id == TypeTableEntryIdInvalid) {
42504250 return cur_type;
4251 } else if (prev_type->id == TypeTableEntryIdUnreachable) {
4252 prev_inst = cur_inst;
4253 } else if (cur_type->id == TypeTableEntryIdUnreachable) {
4254 continue;
42514255 } else if (prev_type->id == TypeTableEntryIdPureError) {
42524256 prev_inst = cur_inst;
42534257 continue;
......@@ -4265,10 +4269,6 @@ static TypeTableEntry *ir_resolve_peer_types(IrAnalyze *ira, AstNode *source_nod
42654269 } else if (types_match_const_cast_only(cur_type, prev_type)) {
42664270 prev_inst = cur_inst;
42674271 continue;
4268 } else if (prev_type->id == TypeTableEntryIdUnreachable) {
4269 prev_inst = cur_inst;
4270 } else if (cur_type->id == TypeTableEntryIdUnreachable) {
4271 continue;
42724272 } else if (prev_type->id == TypeTableEntryIdInt &&
42734273 cur_type->id == TypeTableEntryIdInt &&
42744274 prev_type->data.integral.is_signed == cur_type->data.integral.is_signed)