From 85eeca2f03b3571f22cad578b81b294e9c09a4af Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 25 Mar 2026 10:15:58 +0000 Subject: [PATCH] Add missing generic `#soa` pointers to parapoly handling system --- src/check_expr.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index d6c91ce94..b5270c8e9 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -1472,6 +1472,17 @@ gb_internal bool is_polymorphic_type_assignable(CheckerContext *c, Type *poly, T return is_polymorphic_type_assignable(c, poly->MultiPointer.elem, source->Pointer.elem, true, modify_type); } return false; + + case Type_SoaPointer: + if (source->kind == Type_SoaPointer) { + isize level = check_is_assignable_to_using_subtype(source->SoaPointer.elem, poly->SoaPointer.elem, /*level*/0, /*src_is_ptr*/false, /*allow_polymorphic*/true); + if (level > 0) { + return true; + } + return is_polymorphic_type_assignable(c, poly->SoaPointer.elem, source->SoaPointer.elem, true, modify_type); + } + return false; + case Type_Array: if (source->kind == Type_Array) { if (poly->Array.generic_count != nullptr) {