property indirect overloading - goes trough overloading access methods
Original Reporter info from Mantis: AlexRayne
-
Reporter name: AlexRayne
Original Reporter info from Mantis: AlexRayne
- Reporter name: AlexRayne
Description:
Hallow developers!
i've try to use overloading of array propertyes and got an arror "duplicate identifier ???", as unexpected solve of my problem i found that overloaded
access methods ignores property definition and provide such overloaded property
use in expressions.
here is example:
{$mode objfpc}
unit tbpropertyover;
interface
type
some = class
function GetX(id : integer) : integer;overload;
function GetX(id : string) : integer;overload;
procedure SetX(id : integer; value : integer);overload;
procedure SetX(id : string; value : integer);overload;
property X[ id : integer] : integer read GetX write SetX;
//property X[ id : string] : integer read GetX write SetX; //this got an error - duplicate identifier X
property XByName[ id : string] : integer read GetX write SetX;
end;
implementation
function some.GetX(id : integer) : integer;
begin
end;
function some.GetX(id : string) : integer;
begin
end;
procedure some.SetX(id : integer; value : integer);
begin
end;
procedure some.SetX(id : string; value : integer);
begin
end;
var
A : some;
begin
A := some.create;
A.X['some'] := 0; //this is bug but useful for property verloading
A.XbyName[0] := 0; // here is same
A.Destroy;
end.
please, report, how this bug resolved - imho, property overloading should be allowed in at least for objfpc mode.
Mantis conversion info:
- Mantis ID: 12737
- Version: 2.2.2