[fpc-devel] [] property overloads
Ondrej Pokorny
lazarus at kluug.net
Mon Jul 1 21:41:46 CEST 2019
On 01.07.2019 21:04, Michael Van Canneyt wrote:
> On Mon, 1 Jul 2019, Ondrej Pokorny wrote:
>> On 01.07.2019 19:38, Michael Van Canneyt wrote:
>>> On Mon, 1 Jul 2019, Ondrej Pokorny wrote:
>>>> On 01.07.2019 18:21, Michael Van Canneyt wrote:
>>>>> On Mon, 1 Jul 2019, Ondrej Pokorny wrote:
>>>>> From the above example "Mytest.StringArray" can only evaluate to
>>>>> TTestObjectEnumerator. Nothing else.
>>>
>>> Well, this is IMHO not correct. The array is also a possibility.
>>>
>>> The compiler encounters Mytest.StringArray - at that point he has 2
>>> possibilities. It's an array (and an index must expected) or it is an
>>> enumerator (and nothing must be expected), but at this point the
>>> compiler
>>> cannot decide without looking at the context.
>>
>> There is no array. "property StringArray[Index: Integer]" is not an
>> array and cannot be evaluated as an array.
>
> Please, you know what I mean... It is an "array property".
Sorry - I didn't mean it bad/ironic/whatsoever. I just thought you meant
that:
MyArray := Mytest.StringArray;
might be a valid assignment for
TTest = class
public
property StringArray[Index: Integer]: string read GetString;
end;
TMyArray = array of string;
If it was a valid assignment, there would be 2 possibilities indeed and
the compiler would need to check the left side to resolve the overload:
MyArray := Mytest.StringArray;
MyEnumerator := Mytest.StringArray;
But such syntax is invalid for indexed (array) properties.
Ondrej
More information about the fpc-devel
mailing list