From 7bdd8094d62f9f33eb2e0aedc3ba1a08554ef87e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 30 Jun 2020 19:10:24 +0100 Subject: [PATCH] Fix `signature_parameter_similar_enough` logic --- src/check_decl.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/check_decl.cpp b/src/check_decl.cpp index a74e18ebc..f05c7cd24 100644 --- a/src/check_decl.cpp +++ b/src/check_decl.cpp @@ -519,24 +519,21 @@ bool sig_compare(TypeCheckSig *a, TypeCheckSig *b, Type *x, Type *y) { } bool signature_parameter_similar_enough(Type *x, Type *y) { - x = core_type(x); - y = core_type(y); - if (sig_compare(is_type_pointer, x, y)) { return true; } if (sig_compare(is_type_integer, x, y)) { - GB_ASSERT(x->kind == Type_Basic); - GB_ASSERT(y->kind == Type_Basic); + GB_ASSERT(core_type(x)->kind == Type_Basic); + GB_ASSERT(core_type(y)->kind == Type_Basic); i64 sx = type_size_of(x); i64 sy = type_size_of(y); if (sx == sy) return true; } if (sig_compare(is_type_integer, is_type_boolean, x, y)) { - GB_ASSERT(x->kind == Type_Basic); - GB_ASSERT(y->kind == Type_Basic); + GB_ASSERT(core_type(x)->kind == Type_Basic); + GB_ASSERT(core_type(y)->kind == Type_Basic); i64 sx = type_size_of(x); i64 sy = type_size_of(y); if (sx == sy) return true;