[fpc-devel] Is that supposed to work: property with "[var index: TFoo]" ?
Sven Barth
pascaldragon at googlemail.com
Sat Jun 29 23:43:07 CEST 2019
Am 28.06.2019 um 10:39 schrieb Martin Frb:
> On 28/06/2019 07:39, Sven Barth via fpc-devel wrote:
>> Am 27.06.2019 um 21:09 schrieb Martin:
>>>
>>> { TFoo }
>>>
>>> TFoo = class
>>> private
>>> function GetFoo(var AIndex: Integer): Integer;
>>> public
>>> property Foo[var AIndex: Integer]: Integer read GetFoo;
>>> end;
>>>
>>>
>> I just tested with Delphi and it works there as well. So contrary to
>> what we thought this does not seem to be a bug...
>
> What does Delphi do with
>
> property Foo[AIndex: Integer; BIndex: Integer = 0]: Integer read
> GetFoo;
> Because FPC rejects this one. (And IMHO rightfully so)
Assuming that GetFoo is declared as "function GetFoo(AIndex: Integer):
Integer" It fails with "E2250: There is no overloaded variant of
'GetFoo' that can be called with these arguments" (or however that error
message is translated to English.
The following also fails:
=== code begin ===
function GetFoo(AIndex: Integer; BIndex: Integer): Integer;
property Foo[AIndex: Integer; BIndex: Integer = 0]: Integer read GetFoo;
=== code end ===
However this works:
=== code begin ===
function GetFoo(AIndex: Integer; BIndex: Integer = 0): Integer;
property Foo[AIndex: Integer; BIndex: Integer = 0]: Integer read GetFoo;
=== code end ===
As does this:
=== code begin ===
function GetFoo(AIndex: Integer; BIndex: Integer = 0): Integer;
property Foo[AIndex: Integer; BIndex: Integer]: Integer read GetFoo;
=== code end ===
Regards,
Sven
More information about the fpc-devel
mailing list