Pārlūkot izejas kodu

* indeed allow the conversion of array constructors to dynamic arrays

git-svn-id: trunk@36100 -
svenbarth 8 gadi atpakaļ
vecāks
revīzija
bdef19fd79
1 mainītis faili ar 11 papildinājumiem un 1 dzēšanām
  1. 11 1
      compiler/defcmp.pas

+ 11 - 1
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