浏览代码

* methodpointer 2 procvar test

peter 23 年之前
父节点
当前提交
0653404f70
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. 29 0
      tests/tbf/tb0154.pp

+ 29 - 0
tests/tbf/tb0154.pp

@@ -0,0 +1,29 @@
+{ %fail }
+
+{$mode objfpc}
+type
+  tc = class
+    left,right: tc;
+    function test(var c: tc): boolean;
+  end;
+
+  testfunc = function(var c: tc):boolean;
+
+  function foreach(var c: tc; p: testfunc): boolean;
+    begin
+      if not assigned(c) then
+        exit;
+    end;
+
+
+  function tc.test(var c: tc): boolean;
+  begin
+    { The @tc.test is still a pointer to a method and not valid
+      with a normal procvar }
+    result := foreach(c.left,@tc.test);
+    result := foreach(c.right,@tc.test) or result;
+  end;
+
+
+begin
+end.