Generics regression, fatal error for class var.
Original Reporter info from Mantis: hnb
-
Reporter name: Maciej Izak
Original Reporter info from Mantis: hnb
- Reporter name: Maciej Izak
Description:
All works fine in rev 27327 but in rev 28152 compiler raise Fatal error:
program p002;
{$MODE DELPHI}
type
IComparer<T> = interface
function Compare(constref Left, Right: T): Integer; overload;
end;
TOrdinalComparer<T, THashFactory> = class(TInterfacedObject, IComparer<T>)
protected class var
FComparer: IComparer<T>;
public
function Compare(constref Left, Right: T): Integer; virtual; abstract;
end;
TGOrdinalStringComparer<T, THashFactory> = class(TOrdinalComparer<T, THashFactory>)
public
function Compare(constref ALeft, ARight: T): Integer; override;
end;
function TGOrdinalStringComparer<THashFactory, T>.Compare(constref ALeft,
ARight: T): Integer;
begin
Result := FComparer.Compare(ALeft, ARight);
end;
begin
end.
Mantis conversion info:
- Mantis ID: 26481
- Build: 28152
- Version: 2.7.1
- Fixed in version: 3.0.0
- Fixed in revision: 29484 (#5115c3e6)
- Monitored by: » Vincent (Vincent Snijders)