Explorar o código

* compile time class check

peter %!s(int64=23) %!d(string=hai) anos
pai
achega
91dfe9bec5
Modificáronse 1 ficheiros con 49 adicións e 0 borrados
  1. 49 0
      tests/test/tclass6.pp

+ 49 - 0
tests/test/tclass6.pp

@@ -0,0 +1,49 @@
+{ %fail }
+{ %opt=-CR }
+{ %version=1.1 }
+
+{$mode objfpc}
+program test_class;
+
+
+type
+  tobj1 = class
+    constructor create;
+    procedure mymethod; virtual;
+  end;
+  
+  
+  tobj2 = class
+    constructor create;
+    procedure mymethod; virtual;
+  end;
+  
+  
+  constructor tobj2.create;
+   begin
+   end;
+   
+  procedure tobj2.mymethod;
+   begin
+   end;
+   
+   
+  constructor tobj1.create;
+   begin
+   end;
+   
+  procedure tobj1.mymethod;
+   begin
+   end;
+  
+  
+var
+ _cla1 : tobj1;
+ _cla2 : tobj2;
+Begin
+  _cla1:=tobj1.create;
+  _cla2:=tobj2.create;
+  { Detect wrong typecast at compile time }
+  tobj1(_cla2).mymethod;
+end.
+