1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
{ %VERSION=1.1 }
{ %SKIPTARGET=macos }
{ On macos it crashes when run.}
{$mode objfpc}
type
IInterface = interface(IUnknown)
procedure mydo;
end;
TMyClass = class(TInterfacedObject, IInterface)
procedure mydo;virtual;
end;
TMyClass2 = class(TMyClass)
i : integer;
end;
var
l : longint;
procedure tmyclass.mydo;
begin
l:=1;
end;
var
c: TMyClass;
i: IInterface;
c2 : TMyClass;
begin
c := TMyClass.Create;
i := c;
l:=0;
i.mydo;
if l<>1 then
halt(1);
c2 := TMyClass2.Create;
i := c2;
l:=0;
i.mydo;
if l<>1 then
halt(1);
end.
|