{ %NORUN } program tw35735; {$Mode objfpc} uses Classes, SysUtils; type { TObjectHelper } TObjectHelper = class helper for TObject public generic function Test<T>(): String; end; { TComponentHelper } generic function TObjectHelper.Test<T>: String; begin Result := T.ClassName end; var O: TObject; begin O := TObject.Create; WriteLn(O.specialize Test<TPersistent>); O.Free; end.