authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-05-03 19:20:23-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-06-10 20:40:04-07:00
logfb16ad3add77eff23f9c5dbaf802fdecfb4c8cc0
treecb6c75f13753d0a7876355198e0c2c4b84a35d7b
parentca3cf93b21bc77535fbaa7ca6aa411654dcfe069

Type: update to use InternPool for some methods


1 files changed, 26 insertions(+), 14 deletions(-)

src/type.zig+26-14
......@@ -5921,32 +5921,44 @@ pub const Type = struct {
59215921 };
59225922
59235923 pub fn isTuple(ty: Type) bool {
5924 return switch (ty.tag()) {
5925 .tuple, .empty_struct_literal => true,
5926 .@"struct" => ty.castTag(.@"struct").?.data.is_tuple,
5927 else => false,
5924 return switch (ty.ip_index) {
5925 .none => switch (ty.tag()) {
5926 .tuple, .empty_struct_literal => true,
5927 .@"struct" => ty.castTag(.@"struct").?.data.is_tuple,
5928 else => false,
5929 },
5930 else => false, // TODO
59285931 };
59295932 }
59305933
59315934 pub fn isAnonStruct(ty: Type) bool {
5932 return switch (ty.tag()) {
5933 .anon_struct, .empty_struct_literal => true,
5934 else => false,
5935 return switch (ty.ip_index) {
5936 .none => switch (ty.tag()) {
5937 .anon_struct, .empty_struct_literal => true,
5938 else => false,
5939 },
5940 else => false, // TODO
59355941 };
59365942 }
59375943
59385944 pub fn isTupleOrAnonStruct(ty: Type) bool {
5939 return switch (ty.tag()) {
5940 .tuple, .empty_struct_literal, .anon_struct => true,
5941 .@"struct" => ty.castTag(.@"struct").?.data.is_tuple,
5942 else => false,
5945 return switch (ty.ip_index) {
5946 .none => switch (ty.tag()) {
5947 .tuple, .empty_struct_literal, .anon_struct => true,
5948 .@"struct" => ty.castTag(.@"struct").?.data.is_tuple,
5949 else => false,
5950 },
5951 else => false, // TODO
59435952 };
59445953 }
59455954
59465955 pub fn isSimpleTuple(ty: Type) bool {
5947 return switch (ty.tag()) {
5948 .tuple, .empty_struct_literal => true,
5949 else => false,
5956 return switch (ty.ip_index) {
5957 .none => switch (ty.tag()) {
5958 .tuple, .empty_struct_literal => true,
5959 else => false,
5960 },
5961 else => false, // TODO
59505962 };
59515963 }
59525964