aboutsummaryrefslogtreecommitdiff
path: root/src/check_decl.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-06-30 19:10:24 +0100
committergingerBill <bill@gingerbill.org>2020-06-30 19:10:24 +0100
commit7bdd8094d62f9f33eb2e0aedc3ba1a08554ef87e (patch)
tree18bc44390d572cb33a65a4922cb3e352baa30537 /src/check_decl.cpp
parent323fc7a6a9ff795966acb01369c232a7ddacf760 (diff)
Fix `signature_parameter_similar_enough` logic
Diffstat (limited to 'src/check_decl.cpp')
-rw-r--r--src/check_decl.cpp11
1 files 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;