From b10cf3e0f47696d8910b5896456cc00672ca68ea Mon Sep 17 00:00:00 2001 From: playX Date: Fri, 13 May 2022 07:17:28 +0000 Subject: [PATCH] checker: allow to pass alias to array as a pointer (c2v) (#14389) --- vlib/v/checker/fn.v | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vlib/v/checker/fn.v b/vlib/v/checker/fn.v index e411789390..24a55034f0 100644 --- a/vlib/v/checker/fn.v +++ b/vlib/v/checker/fn.v @@ -958,11 +958,13 @@ pub fn (mut c Checker) fn_call(mut node ast.CallExpr, mut continue_check &bool) if param.typ == ast.voidptr_type_idx || arg_typ == ast.voidptr_type_idx { continue } + param_typ_sym_ := c.table.sym(c.table.unaliased_type(param.typ)) + arg_typ_sym_ := c.table.sym(c.table.unaliased_type(arg_typ)) // Allow `[32]i8` as `&i8` etc - if ((arg_typ_sym.kind == .array_fixed || arg_typ_sym.kind == .array) + if ((arg_typ_sym_.kind == .array_fixed || arg_typ_sym_.kind == .array) && (param_is_number || c.table.unaliased_type(param.typ).is_any_kind_of_pointer())) - || ((param_typ_sym.kind == .array_fixed || param_typ_sym.kind == .array) + || ((param_typ_sym_.kind == .array_fixed || param_typ_sym_.kind == .array) && (typ_is_number || c.table.unaliased_type(arg_typ).is_any_kind_of_pointer())) { continue }