authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-06-11 13:44:09-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-06-11 13:44:09-04:00
log1c2e889820e50e26654990750ac5ef0755996618
treea5e6a7e36444a424ed93d5ab58964f7af78d7060
parentfc8d8812404e79716e15fd301058032485e8bb64
signaturelock-open Commit is signed but in an unrecognized format.

fix struct and array init when result casted to anyerror!?T

previous commit message is incorrect, it was only for anyerror!T

2 files changed, 8 insertions(+), 3 deletions(-)

BRANCH_TODO-2
......@@ -1,8 +1,6 @@
11Scratch pad for stuff to do before merging master
22=================================================
33
4struct & array init when the result is casted to anyerror!?T
5
64uncomment all the behavior tests
75
86look at all the ir_gen_node ir_gen_node_extra calls and make sure result locations are properly propagated
src/ir.cpp+8-1
......@@ -14951,7 +14951,14 @@ static IrInstruction *ir_analyze_instruction_resolve_result(IrAnalyze *ira, IrIn
1495114951 if (actual_elem_type->id == ZigTypeIdOptional && implicit_elem_type->id != ZigTypeIdOptional) {
1495214952 return ir_analyze_unwrap_optional_payload(ira, &instruction->base, result_loc, false, true);
1495314953 } else if (actual_elem_type->id == ZigTypeIdErrorUnion && implicit_elem_type->id != ZigTypeIdErrorUnion) {
14954 return ir_analyze_unwrap_error_payload(ira, &instruction->base, result_loc, false, true);
14954 IrInstruction *unwrapped_err_ptr = ir_analyze_unwrap_error_payload(ira, &instruction->base,
14955 result_loc, false, true);
14956 ZigType *actual_payload_type = actual_elem_type->data.error_union.payload_type;
14957 if (actual_payload_type->id == ZigTypeIdOptional && implicit_elem_type->id != ZigTypeIdOptional) {
14958 return ir_analyze_unwrap_optional_payload(ira, &instruction->base, unwrapped_err_ptr, false, true);
14959 } else {
14960 return unwrapped_err_ptr;
14961 }
1495514962 }
1495614963 return result_loc;
1495714964}