From 912e7dc54b9b49d96123ffd398e6d40b455997fe Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 21 Oct 2021 23:22:55 -0700 Subject: [PATCH] Sema: resoveTypeLayout resolves optionals and error unions too Previously it only worked on struct, union, and array. --- src/Sema.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Sema.zig b/src/Sema.zig index 71689f65d9..1826d03559 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -13662,6 +13662,15 @@ pub fn resolveTypeLayout( const elem_ty = ty.childType(); return sema.resolveTypeLayout(block, src, elem_ty); }, + .Optional => { + var buf: Type.Payload.ElemType = undefined; + const payload_ty = ty.optionalChild(&buf); + return sema.resolveTypeLayout(block, src, payload_ty); + }, + .ErrorUnion => { + const payload_ty = ty.errorUnionPayload(); + return sema.resolveTypeLayout(block, src, payload_ty); + }, else => {}, } }