{ %NORUN } program tw21064a; {$mode delphi} type IGenericIntf = interface function SomeMethod: T; end; TGenericClass = class(TInterfacedObject, IGenericIntf) private protected function GenericIntf_SomeMethod: T; function IGenericIntf.SomeMethod = GenericIntf_SomeMethod; end; function TGenericClass.GenericIntf_SomeMethod: T; begin end; type TGenericClassLongInt = TGenericClass; begin end.