Delphi Compiler Error
E2510 Type ‘%s’ is not a valid constraint
Reason for the Error & Solution
You cannot use a class reference as a type constraint in a generic class. Use a normal class instead.
program E2510;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TBaseType = class
end;
TBaseTypeClass = class of TBaseType;
TFactory<T: TBaseTypeClass, constructor> = class //E2510 Fix: replace TBaseTypeClass with TBaseType
end;
begin
Writeln('FAIL - Type ''%s'' is not a valid constraint');
end.