checker: allow to pass alias to array as a pointer (c2v) (#14389)
ci/woodpecker/push/vc Pipeline was successful Details
ci/woodpecker/push/docker Pipeline was successful Details
ci/woodpecker/push/arch Pipeline was successful Details

playX 2022-05-13 07:17:28 +00:00 committed by Jef Roosens
parent efd1597d84
commit b10cf3e0f4
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
1 changed files with 4 additions and 2 deletions

View File

@ -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
}