Răsfoiți Sursa

* also allow conversion of niln to forward-defined pointerdef
(mantis #22593)

git-svn-id: trunk@22026 -

Jonas Maebe 13 ani în urmă
părinte
comite
4d31fbc31d
2 a modificat fișierele cu 9 adăugiri și 3 ștergeri
  1. 2 1
      compiler/defcmp.pas
  2. 7 2
      tests/webtbs/tw22593.pp

+ 2 - 1
compiler/defcmp.pas

@@ -1222,7 +1222,8 @@ implementation
                       if assigned(def_to.typesym) and
                          (tpointerdef(def_to).pointeddef.typ=forwarddef) then
                        begin
-                         if (def_from.typesym=def_to.typesym) then
+                         if (def_from.typesym=def_to.typesym) or
+                            (fromtreetype=niln) then
                           eq:=te_equal
                        end
                      else

+ 7 - 2
tests/webtbs/tw22593.pp

@@ -10,14 +10,19 @@ type
   tcc = class of tc;
   tc3 = class;
 
+  tprec = ^trec;
+
   tc2 = class
-    constructor create(c: tcc = nil; c3: tc3 = nil);
+    constructor create(c: tcc = nil; c3: tc3 = nil; r: tprec = nil);
+  end;
+
+  trec = record
   end;
 
   tc3 = class
   end;
 
-constructor tc2.create(c: tcc = nil; c3: tc3 = nil);
+constructor tc2.create(c: tcc = nil; c3: tc3 = nil; r: tprec = nil);
 begin
 end;