Arbitrary abbreviations in phobos considered ridiculous
H. S. Teoh
hsteoh at quickfur.ath.cx
Fri Mar 9 16:56:00 PST 2012
On Sat, Mar 10, 2012 at 01:43:35AM +0100, Timon Gehr wrote:
> On 03/10/2012 01:10 AM, H. S. Teoh wrote:
> >On Fri, Mar 09, 2012 at 06:50:50PM -0500, bearophile wrote:
> >>Jonathan M Davis:
> >>
> >>>I don't know what the current state of UFCS is.
> >>
> >>I have found a possible problem in it, and probably there are some
> >>missing parts, but it's working well.
> >
> >I found that x.foo doesn't work, it needs to be x.foo(). But we're
> >deprecating omission of parentheses of non- at property functions anyway,
> >and an external function can hardly be a @property of anything, so I
> >don't think this needs to be fixed.
> >
>
> UFCS for @properties seems to work according to the unit tests.
> However, this makes @property ambiguous. foo = 2 will be the same as
> 2.foo.
But 2.foo can never be interpreted as obj.foo = 2. I can't imagine any
way to write 2.something and have it come out as obj.foo(2).
The only remote possibility is inside a class/struct method, but in that
case doesn't class/struct scope take precedence anyway? And presumably,
you wouldn't be using pseudo-members if you're the one writing the
class. Otherwise, if the programmer is deliberately trying to break the
system, well, he shouldn't be surprised if things break. :-)
T
--
Тише едешь, дальше будешь.
More information about the Digitalmars-d
mailing list