Delphi Error – E2519 First parameter type of operator ‘%s’ and result type must be identical

Delphi Compiler Error

E2519 First parameter type of operator ‘%s’ and result type must be identical

Reason for the Error & Solution

This occurs when the type of the parameter for the overloaded operator differs from the return type of the operator.

program E2519;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
TMyRecord = record
    class operator Inc(a: TMyRecord): Boolean; //E2519
  end;

class operator TMyRecord.Inc(a: TMyRecord): Boolean;
begin
   // code
end;

begin
  Writeln('E2519 First parameter type of operator ''%s'' and result type must be identical');
end.

See Also