authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-10-30 17:28:03-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-10-30 17:28:03-04:00
log7405bc761804fa351f9633dc7992ed198742e332
tree74fec2614188ac2e7225796daa3d1703476f4296
parentca71373da1140149500b529d57b9196711929063
signaturelock-open Commit is signed but in an unrecognized format.

remove implicit cast from number literal to enum

I missed this code when removing explicit cast syntax.

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

src/ir.cpp+1-13
...@@ -10624,19 +10624,7 @@ static IrInstruction *ir_analyze_cast(IrAnalyze *ira, IrInstruction *source_inst...@@ -10624,19 +10624,7 @@ static IrInstruction *ir_analyze_cast(IrAnalyze *ira, IrInstruction *source_inst
10624 if (actual_type->id == ZigTypeIdComptimeFloat ||10624 if (actual_type->id == ZigTypeIdComptimeFloat ||
10625 actual_type->id == ZigTypeIdComptimeInt)10625 actual_type->id == ZigTypeIdComptimeInt)
10626 {10626 {
10627 if ((err = ensure_complete_type(ira->codegen, wanted_type)))10627 if (ir_num_lit_fits_in_other_type(ira, value, wanted_type, true)) {
10628 return ira->codegen->invalid_instruction;
10629 if (wanted_type->id == ZigTypeIdEnum) {
10630 IrInstruction *cast1 = ir_analyze_cast(ira, source_instr, wanted_type->data.enumeration.tag_int_type, value);
10631 if (type_is_invalid(cast1->value.type))
10632 return ira->codegen->invalid_instruction;
10633
10634 IrInstruction *cast2 = ir_analyze_cast(ira, source_instr, wanted_type, cast1);
10635 if (type_is_invalid(cast2->value.type))
10636 return ira->codegen->invalid_instruction;
10637
10638 return cast2;
10639 } else if (ir_num_lit_fits_in_other_type(ira, value, wanted_type, true)) {
10640 CastOp op;10628 CastOp op;
10641 if ((actual_type->id == ZigTypeIdComptimeFloat &&10629 if ((actual_type->id == ZigTypeIdComptimeFloat &&
10642 wanted_type->id == ZigTypeIdFloat) ||10630 wanted_type->id == ZigTypeIdFloat) ||