From 8694a0f68a2b5c18ea19e1b8a526aacfd51fc85b Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 22 Aug 2021 12:31:03 +0100 Subject: Update `signature_parameter_similar_enough` for multi pointers --- src/check_decl.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/check_decl.cpp') diff --git a/src/check_decl.cpp b/src/check_decl.cpp index 4cce25097..ec200354e 100644 --- a/src/check_decl.cpp +++ b/src/check_decl.cpp @@ -517,6 +517,12 @@ bool signature_parameter_similar_enough(Type *x, Type *y) { if (sig_compare(is_type_pointer, x, y)) { return true; } + if (sig_compare(is_type_multi_pointer, x, y)) { + return true; + } + if (sig_compare(is_type_proc, x, y)) { + return true; + } if (sig_compare(is_type_integer, x, y)) { GB_ASSERT(core_type(x)->kind == Type_Basic); @@ -536,15 +542,21 @@ bool signature_parameter_similar_enough(Type *x, Type *y) { if (sig_compare(is_type_cstring, is_type_u8_ptr, x, y)) { return true; } + if (sig_compare(is_type_cstring, is_type_u8_multi_ptr, x, y)) { + return true; + } if (sig_compare(is_type_uintptr, is_type_rawptr, x, y)) { return true; } - if (sig_compare(is_type_proc, is_type_proc, x, y)) { + if (sig_compare(is_type_proc, is_type_pointer, x, y)) { return true; } - if (sig_compare(is_type_proc, is_type_pointer, x, y)) { + if (sig_compare(is_type_pointer, is_type_multi_pointer, x, y)) { + return true; + } + if (sig_compare(is_type_proc, is_type_multi_pointer, x, y)) { return true; } -- cgit v1.2.3