diff --git a/compiler/defcmp.pas b/compiler/defcmp.pas index 986b67e6cc..93b20fcd0f 100644 --- a/compiler/defcmp.pas +++ b/compiler/defcmp.pas @@ -977,7 +977,17 @@ implementation { to dynamic array } else if is_dynamic_array(def_to) then begin - if equal_defs(tarraydef(def_from).elementdef,tarraydef(def_to).elementdef) then + if is_array_constructor(def_from) then + begin + { array constructor -> dynamic array } + if (tarraydef(def_from).elementdef=voidtype) or + (compare_defs(tarraydef(def_from).elementdef,tarraydef(def_to).elementdef,nothingn)>te_incompatible) then + begin + eq:=te_convert_l1; + doconv:=tc_arrayconstructor_2_dynarray; + end; + end + else if equal_defs(tarraydef(def_from).elementdef,tarraydef(def_to).elementdef) then begin { dynamic array -> dynamic array } if is_dynamic_array(def_from) then