{ this tests that forced typecasts to inline specialized types work } program tgeneric52; {$ifdef fpc} {$mode delphi} {$endif} {$apptype console} type TTest = class function Test: Integer; end; TTestGen = class(TTest) function Test: Integer; end; function TTest.Test: Integer; begin Result := 1; end; function TTestGen.Test: Integer; begin Result := 2; end; var t: TTest; res: Integer; begin t := TTestGen.Create; res := TTestGen(t).Test; Writeln('t.Test: ', res); if res <> 2 then Halt(1); Writeln('ok'); end.