123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- { %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.
|