diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-05-31 15:19:25 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-31 15:19:25 -0400 |
| commit | d09d61be979fc97233bd53d9d082a86e4dcd9779 (patch) | |
| tree | 502e0476e43e1a8ea0e0dd9e48e9fb8f76d1dd7c /src/type.zig | |
| parent | d410693dadfe791e616e78239fa0cec707b95cfa (diff) | |
| parent | 282437c7538e3e70ce06cfee7affe976de28a780 (diff) | |
| download | zig-d09d61be979fc97233bd53d9d082a86e4dcd9779.tar.gz zig-d09d61be979fc97233bd53d9d082a86e4dcd9779.zip | |
Merge pull request #11762 from Vexu/stage2
Stage2 fixes
Diffstat (limited to 'src/type.zig')
| -rw-r--r-- | src/type.zig | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/type.zig b/src/type.zig index ebb8bfd7c3..9a072fa911 100644 --- a/src/type.zig +++ b/src/type.zig @@ -640,16 +640,16 @@ pub const Type = extern union { if (!eql(a_info.return_type, b_info.return_type, mod)) return false; - if (a_info.cc != b_info.cc) + if (a_info.is_var_args != b_info.is_var_args) return false; - if (a_info.alignment != b_info.alignment) + if (a_info.is_generic != b_info.is_generic) return false; - if (a_info.is_var_args != b_info.is_var_args) + if (!a_info.cc_is_generic and a_info.cc != b_info.cc) return false; - if (a_info.is_generic != b_info.is_generic) + if (!a_info.align_is_generic and a_info.alignment != b_info.alignment) return false; if (a_info.param_types.len != b_info.param_types.len) @@ -1036,9 +1036,15 @@ pub const Type = extern union { std.hash.autoHash(hasher, std.builtin.TypeId.Fn); const fn_info = ty.fnInfo(); - hashWithHasher(fn_info.return_type, hasher, mod); - std.hash.autoHash(hasher, fn_info.alignment); - std.hash.autoHash(hasher, fn_info.cc); + if (fn_info.return_type.tag() != .generic_poison) { + hashWithHasher(fn_info.return_type, hasher, mod); + } + if (!fn_info.align_is_generic) { + std.hash.autoHash(hasher, fn_info.alignment); + } + if (!fn_info.cc_is_generic) { + std.hash.autoHash(hasher, fn_info.cc); + } std.hash.autoHash(hasher, fn_info.is_var_args); std.hash.autoHash(hasher, fn_info.is_generic); |
