If I had my way
Michel Fortin
michel.fortin at michelf.com
Tue Dec 13 13:35:08 PST 2011
On 2011-12-13 18:13:38 +0000, "Jonathan M Davis" <jmdavisProg at gmx.com> said:
> On Tuesday, December 13, 2011 12:14:37 Michel Fortin wrote:
>> On 2011-12-13 16:57:33 +0000, Jonathan M Davis <jmdavisProg at gmx.com> said:
>>> Now, I don't know what -property is doing with it at the moment, but I
>>> don't see how it could work any other way.
>>
>> Currently I think you can do this:
>>
>> import std.range;
>>
>> int[] array = [1, 2];
>> int x = array.front; // fine
>> int y = (front = a); // ???
>>
>> And also you can't define array-member property setters because they
>> take three arguments and three argument property functions are not
>> allowed.
>
> You mean calling a property function on an element in an array? I would only
> have expected that to work if the element type had such a property. I wouldn't
> ever have expected you to be able to declare a property for arrays which
> allowed you to call it as a property on the array's elements.
Oops. That was a typo. I meant (front = array). "a" is undefined in the
example above.
>> And also, in case of conflict, currently you can write
>> `std.range.front(array)` to disambiguate, but how does that work with
>> @property enforcement, probably not that well?
>
> Disambiguate with what? With a module-level property? As it stands, I expect
> that module-level properties which are arrays just wouldn't work.
Say you have a array-member property called "front" defined in
std.range (not hard to imagine) and an identical property called
"front" in another module and you import both modules: "array.front"
becomes ambiguous. With the function call syntax you can write
std.range.front(array) and other.module.front(array) as a substitute to
the property syntax to disambiguate, but if the property syntax is
enforced should calling the property as a function still be allowed for
array-member functions? Or should we invent a syntax such as
array.(other.module.front)?
--
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/
More information about the Digitalmars-d
mailing list