default properties do not work when used in objects
Original Reporter info from Mantis: SIV
-
Reporter name: Igor Sudarikov
Original Reporter info from Mantis: SIV
- Reporter name: Igor Sudarikov
Description:
This code fails to compile:
[code]
{$mode objfpc}
type
TObj = object
function GetItem(const i :Integer) :Integer;
property Items[i :Integer] :Integer read GetItem; default;
end;
function TObj.GetItem(const i :Integer) :Integer;
begin
Result := i;
end;
var
Obj :TObj;
begin
WriteLn(Obj[0],' ',Obj[10]);
end.
[/code]
But if TObj is declared as a class, everything works and output is correct (see additional info)
Additional information:
{$mode objfpc}
type
TObj = class
function GetItem(const i :Integer) :Integer;
property Items[i :Integer] :Integer read GetItem; default;
end;
function TObj.GetItem(const i :Integer) :Integer;
begin
Result := i;
end;
var
Obj :TObj;
begin
Obj := TObj.Create;
WriteLn(Obj[0],' ',Obj[10]);
Obj.Destroy;
end.
Mantis conversion info:
- Mantis ID: 10795
- Fixed in version: 2.2.4
- Fixed in revision: 11690 (#aace2952)