zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit fb16ad3add77eff23f9c5dbaf802fdecfb4c8cc0 (tree)
parent ca3cf93b21bc77535fbaa7ca6aa411654dcfe069
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Wed,  3 May 2023 19:20:23 -0700

Type: update to use InternPool for some methods

Diffstat:
Msrc/type.zig | 40++++++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/src/type.zig b/src/type.zig @@ -5921,32 +5921,44 @@ pub const Type = struct { }; pub fn isTuple(ty: Type) bool { - return switch (ty.tag()) { - .tuple, .empty_struct_literal => true, - .@"struct" => ty.castTag(.@"struct").?.data.is_tuple, - else => false, + return switch (ty.ip_index) { + .none => switch (ty.tag()) { + .tuple, .empty_struct_literal => true, + .@"struct" => ty.castTag(.@"struct").?.data.is_tuple, + else => false, + }, + else => false, // TODO }; } pub fn isAnonStruct(ty: Type) bool { - return switch (ty.tag()) { - .anon_struct, .empty_struct_literal => true, - else => false, + return switch (ty.ip_index) { + .none => switch (ty.tag()) { + .anon_struct, .empty_struct_literal => true, + else => false, + }, + else => false, // TODO }; } pub fn isTupleOrAnonStruct(ty: Type) bool { - return switch (ty.tag()) { - .tuple, .empty_struct_literal, .anon_struct => true, - .@"struct" => ty.castTag(.@"struct").?.data.is_tuple, - else => false, + return switch (ty.ip_index) { + .none => switch (ty.tag()) { + .tuple, .empty_struct_literal, .anon_struct => true, + .@"struct" => ty.castTag(.@"struct").?.data.is_tuple, + else => false, + }, + else => false, // TODO }; } pub fn isSimpleTuple(ty: Type) bool { - return switch (ty.tag()) { - .tuple, .empty_struct_literal => true, - else => false, + return switch (ty.ip_index) { + .none => switch (ty.tag()) { + .tuple, .empty_struct_literal => true, + else => false, + }, + else => false, // TODO }; }