Преглед на файлове

* fix checking of procdef type which was broken since loadn returned
pointertype for tp procvar

peter преди 22 години
родител
ревизия
155a2cdab4
променени са 1 файла, в които са добавени 11 реда и са изтрити 4 реда
  1. 11 4
      compiler/ncnv.pas

+ 11 - 4
compiler/ncnv.pas

@@ -1110,7 +1110,10 @@ implementation
                      not assigned(tcallnode(left).left) then
                    begin
                      if assigned(tcallnode(left).right) then
-                      hp:=tcallnode(left).right.getcopy
+                      begin
+                        hp:=tcallnode(left).right.getcopy;
+                        currprocdef:=tprocdef(hp.resulttype.def);
+                      end
                      else
                       begin
                         currprocdef:=Tprocsym(Tcallnode(left).symtableprocentry).search_procdef_byprocvardef(Tprocvardef(resulttype.def));
@@ -1123,14 +1126,14 @@ implementation
                            else
                              tloadnode(hp).set_mp(cselfnode.create(tobjectdef(tcallnode(left).symtableprocentry.owner.defowner)));
                          end;
+                        resulttypepass(hp);
                       end;
-                     resulttypepass(hp);
                      left.free;
                      left:=hp;
                      convtype:=tc_proc_2_procvar;
                      { Now check if the procedure we are going to assign to
                        the procvar, is compatible with the procvar's type }
-                     if proc_to_procvar_equal(tprocdef(left.resulttype.def),
+                     if proc_to_procvar_equal(currprocdef,
                                               tprocvardef(resulttype.def),true)=te_incompatible then
                        CGMessage2(type_e_incompatible_types,tprocdef(left.resulttype.def).typename,resulttype.def.typename);
                      exit;
@@ -2034,7 +2037,11 @@ begin
 end.
 {
   $Log$
-  Revision 1.106  2003-04-23 10:10:07  peter
+  Revision 1.107  2003-04-23 13:13:08  peter
+    * fix checking of procdef type which was broken since loadn returned
+      pointertype for tp procvar
+
+  Revision 1.106  2003/04/23 10:10:07  peter
     * expectloc fixes
 
   Revision 1.105  2003/04/22 23:50:23  peter