| ... | @@ -558,7 +558,7 @@ pub const Type = extern union { | ... | @@ -558,7 +558,7 @@ pub const Type = extern union { |
| 558 | | 558 | |
| 559 | .error_set_inferred => { | 559 | .error_set_inferred => { |
| 560 | // Inferred error sets are only equal if both are inferred | 560 | // Inferred error sets are only equal if both are inferred |
| 561 | // and they originate from the exact same function. | 561 | // and they share the same pointer. |
| 562 | const a_ies = a.castTag(.error_set_inferred).?.data; | 562 | const a_ies = a.castTag(.error_set_inferred).?.data; |
| 563 | const b_ies = (b.castTag(.error_set_inferred) orelse return false).data; | 563 | const b_ies = (b.castTag(.error_set_inferred) orelse return false).data; |
| 564 | return a_ies == b_ies; | 564 | return a_ies == b_ies; |
| ... | @@ -612,6 +612,15 @@ pub const Type = extern union { | ... | @@ -612,6 +612,15 @@ pub const Type = extern union { |
| 612 | if (a_info.cc != b_info.cc) | 612 | if (a_info.cc != b_info.cc) |
| 613 | return false; | 613 | return false; |
| 614 | | 614 | |
| | 615 | if (a_info.alignment != b_info.alignment) |
| | 616 | return false; |
| | 617 | |
| | 618 | if (a_info.is_var_args != b_info.is_var_args) |
| | 619 | return false; |
| | 620 | |
| | 621 | if (a_info.is_generic != b_info.is_generic) |
| | 622 | return false; |
| | 623 | |
| 615 | if (a_info.param_types.len != b_info.param_types.len) | 624 | if (a_info.param_types.len != b_info.param_types.len) |
| 616 | return false; | 625 | return false; |
| 617 | | 626 | |
| ... | @@ -622,19 +631,11 @@ pub const Type = extern union { | ... | @@ -622,19 +631,11 @@ pub const Type = extern union { |
| 622 | | 631 | |
| 623 | if (a_param_ty.tag() == .generic_poison) continue; | 632 | if (a_param_ty.tag() == .generic_poison) continue; |
| 624 | if (b_param_ty.tag() == .generic_poison) continue; | 633 | if (b_param_ty.tag() == .generic_poison) continue; |
| | 634 | |
| 625 | if (!eql(a_param_ty, b_param_ty)) | 635 | if (!eql(a_param_ty, b_param_ty)) |
| 626 | return false; | 636 | return false; |
| 627 | } | 637 | } |
| 628 | | 638 | |
| 629 | if (a_info.alignment != b_info.alignment) | | |
| 630 | return false; | | |
| 631 | | | |
| 632 | if (a_info.is_var_args != b_info.is_var_args) | | |
| 633 | return false; | | |
| 634 | | | |
| 635 | if (a_info.is_generic != b_info.is_generic) | | |
| 636 | return false; | | |
| 637 | | | |
| 638 | return true; | 639 | return true; |
| 639 | }, | 640 | }, |
| 640 | | 641 | |