tw30830b.pp 531 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. { %NORUN }
  2. program tw30830a;
  3. {$mode delphi}
  4. type
  5. TBase<T> = class
  6. procedure Test1(const a: T);
  7. end;
  8. TDerived<T> = class(TBase<T>)
  9. procedure Test2(const a: T);
  10. end;
  11. procedure TBase<T>.Test1(const a: T);
  12. begin
  13. end;
  14. procedure TDerived<T>.Test2(const a: T);
  15. begin
  16. end;
  17. procedure Test<T>(aIntf: TBase<T>); overload; // works
  18. begin
  19. end;
  20. procedure Test<T>(aIntf: TDerived<T>); overload; // SIGSEGV :(
  21. begin
  22. end;
  23. var
  24. b: TBase<LongInt>;
  25. d: TDerived<LongInt>;
  26. begin
  27. Test<LongInt>(b);
  28. Test<LongInt>(d);
  29. end.