Implicit array in operator is treated like "set of"
Original Reporter info from Mantis: ryan_joseph @genericptr
-
Reporter name: Ryan Joseph
Original Reporter info from Mantis: ryan_joseph @genericptr
- Reporter name: Ryan Joseph
Description:
The compiler treats implicit in operator overloads like sets thus giving an error that the operator is not overloaded. Happens on classes (as seen below) as well as records. I haven't tried all operators but at least + and := are affected.
Steps to reproduce:
program test;
type
TMyClass = class
end;
operator + (left: TMyClass; right: array of integer): TMyClass; overload;
var
i: integer;
begin
for i in right do
writeln('add ', i);
result := left;
end;
var
c: TMyClass;
begin
c += [1, 2, 3]; // ERROR: Operator is not overloaded: "TMyClass" + "Set Of Byte"
end.
Mantis conversion info:
- Mantis ID: 34021
- Version: 3.1.1
- Fixed in version: 3.1.1
- Fixed in revision: 39554 (#32c307e9)
- Monitored by: » CraigChapman (Craig Chapman)