diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-06-09 15:36:18 +0300 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-06-11 11:02:56 +0300 |
| commit | 002df65b6ec55684d6bc6790ae7b0c0f4abb1375 (patch) | |
| tree | ce5687738de8b663c123a5d59b9d84e6f283758b /src/Sema.zig | |
| parent | c1eb6c30e84b0b161b634f7410088f44c80caa90 (diff) | |
| download | zig-002df65b6ec55684d6bc6790ae7b0c0f4abb1375.tar.gz zig-002df65b6ec55684d6bc6790ae7b0c0f4abb1375.zip | |
Sema: handle tuple and anon_struct in resolveTypeFully
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 048a702e7b..fd127bc04a 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -23328,7 +23328,17 @@ pub fn resolveTypeFully( const child_ty = try sema.resolveTypeFields(block, src, ty.childType()); return resolveTypeFully(sema, block, src, child_ty); }, - .Struct => return resolveStructFully(sema, block, src, ty), + .Struct => switch (ty.tag()) { + .@"struct" => return resolveStructFully(sema, block, src, ty), + .tuple, .anon_struct => { + const tuple = ty.tupleFields(); + + for (tuple.types) |field_ty| { + try sema.resolveTypeFully(block, src, field_ty); + } + }, + else => {}, + }, .Union => return resolveUnionFully(sema, block, src, ty), .Array => return resolveTypeFully(sema, block, src, ty.childType()), .Optional => { @@ -23363,7 +23373,7 @@ fn resolveStructFully( try resolveStructLayout(sema, block, src, ty); const resolved_ty = try sema.resolveTypeFields(block, src, ty); - const payload = resolved_ty.castTag(.@"struct") orelse return; + const payload = resolved_ty.castTag(.@"struct").?; const struct_obj = payload.data; switch (struct_obj.status) { |
