Commit fc62ff77c3

Veikka Tuominen <git@vexu.eu>
2021-03-01 22:03:26
stage2: error union payload must also be a valid variable type
1 parent d9e46a4
Changed files (2)
src
src/codegen/c.zig
@@ -566,7 +566,7 @@ pub fn genBody(o: *Object, body: ir.Body) error{ AnalysisFail, OutOfMemory }!voi
             .is_non_null_ptr => try genIsNull(o, inst.castTag(.is_non_null_ptr).?),
             .wrap_optional => try genWrapOptional(o, inst.castTag(.wrap_optional).?),
             .optional_payload => try genOptionalPayload(o, inst.castTag(.optional_payload).?),
-            .optional_payload_ptr => try genOptionalPayload(o, inst.castTag(.optional_payload).?),
+            .optional_payload_ptr => try genOptionalPayload(o, inst.castTag(.optional_payload_ptr).?),
             .is_err => try genIsErr(o, inst.castTag(.is_err).?),
             .is_err_ptr => try genIsErr(o, inst.castTag(.is_err_ptr).?),
             .unwrap_errunion_payload => try genUnwrapErrUnionPay(o, inst.castTag(.unwrap_errunion_payload).?),
src/type.zig
@@ -1663,7 +1663,6 @@ pub const Type = extern union {
             .Int,
             .Float,
             .ErrorSet,
-            .ErrorUnion,
             .Enum,
             .Frame,
             .AnyFrame,
@@ -1687,6 +1686,7 @@ pub const Type = extern union {
                 return ty.optionalChild(&buf).isValidVarType(is_extern);
             },
             .Pointer, .Array => ty = ty.elemType(),
+            .ErrorUnion => ty = ty.errorUnionChild(),
 
             .Fn => @panic("TODO fn isValidVarType"),
             .Struct => @panic("TODO struct isValidVarType"),