{ %fail } program tgeneric31; {$mode delphi} type TGenericClass = class function DoSomething(Arg: T1): T1; end; // it must be TGenericClass function TGenericClass.DoSomething(Arg: T1): T1; begin Result := Arg; end; begin end.