mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-03 03:32:37 +00:00
Fix signature_parameter_similar_enough logic
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user