fpc/tests/webtbf/tw11862a.pp
Jonas Maebe 76ce35b905 * method definitions in "child" interfaces also hide those in "parent"
interfaces, even if they only differ in resulttype (mantis )
  * fixing this required that multiple entries for the same method in a
    interface vmt are all written out (change in
    ImplementedInterface.AddImplProc)

git-svn-id: trunk@11595 -
2008-08-16 20:08:25 +00:00

58 lines
855 B
ObjectPascal

{ %fail }
program bug9;
{$ifdef fpc}
{$mode delphi}
{$endif}
type
ITest = interface(IInterface)
['{FE6B16A6-A898-4B09-A46E-0AAC5E0A4E14}']
function Parent: ITest;
function GetChild: ITest;
end;
ITestEx = interface(ITest)
['{82449E91-76BE-4F4A-B873-1865042D5CAF}']
end;
TTest = class(TInterfacedObject, ITest)
function ITest.Parent = ParentEx;
{ ITestEx }
function ParentEx: ITestEx;
function GetChild: ITest;
procedure RemoveChild;
end;
{ ITest }
{ ITestEx }
function TTest.ParentEx: ITest;
begin;
Result := nil
end;
function TTest.GetChild: ITest;
begin;
WriteLn('TTest.GetChild');
Result := nil
end;
procedure TTest.RemoveChild;
begin;
WriteLn('TTest.RemoveChild');
end;
var E: ITest;
begin
E := TTest.Create;
WriteLn('Calling GetChild');
E.GetChild();
WriteLn('Stop');
end.