summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/tbs/tb0459.pp
blob: a8de5d6d041205be736ed9fc52d4401d145648da (plain)
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
{ %version=1.1 }
{$mode objfpc}
Type
  IMyInterface = Interface
    Function MyFunc : Integer;
  end;

  TMyClass = Class(TInterfacedObject,IMyInterface)
    Function MyOtherFunction : Integer;
    // The following fails in FPC.
    Function IMyInterface.MyFunc = MyOtherFunction;
  end;

Function TMyClass.MyOtherFunction : Integer;

begin
  Result:=23;
end;

Var
  A : TMyClass;
  M : IMyInterface;
  I : Integer;

begin
  A:=TMyClass.Create;
  M:=A;
  I:=M.MyFunc;
  If (I<>23) then
    begin
    Writeln('Error calling interface');
    Halt(1);
    end;
end.