Delphi Compiler Error
E2522 Operator ‘%s’ can not convert to/from ancestor type
Reason for the Error & Solution
This occurs when trying to convert from a generic type to the type restraint of that generic type.
program E2522;
{E2522 Operator '%s' can not convert to/from ancestor type}
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TGenRec<T : record> = record
InternalValue : T;
class operator Implicit(value: TGenRec<T>): TGenRec<T>;
class operator Implicit(value: TGenRec<T>): T; //E2522
end;
begin
end.