On Sunday, 5 August 2012 at 14:32:50 UTC, Adam D. Ruppe wrote:
On Sunday, 5 August 2012 at 04:12:23 UTC, Jonathan M Davis wrote:
I'd be very surprised if all that many people compile with -property.

Indeed. Sometimes I try it just to see what happens, and always the same results: it doesn't solve problems and complains about code.

Some examples of things that break:

import std.algorithm;
foreach(i; [1,2,3].map!"a+1") {

}
prophate.d(5): Error: not a property [1,2,3].map!("a+1")


Of course, this is relatively new, using ufcs in 2.059, so the breakage probably isn't too bad, but I'm not the only one who writes it this way - I've seen a number of reddit and newsgroup comments do this too, especially when chaining it.
[snip]

I completely agree, particularl with the UFCS part. UFCS is designed to get rid of the horrible mess of (), and now we want to arbitrarily force a () anyways? Seems like it defeats the purpose. To me, when comparing
range.filter!"a > 2".map!"a*a".countUntil(3)
to
range.filter!"a > 2"().map!"a*a"().countUntil(3)
Those extra paranthesis just don't do anything, they don't give extra meaning, they don't accomplish anything useful but distract from the actual expression.

Most importantly though, with the focus on avoiding breaking code, why are we putting in -property which has the *sole* purpose of breaking existing code. And a whole lot of it at that. Never mind that a huge number of people strongly dislike the idea of enforcing paranthesis in the first place. It's not even about whether I agree with enforcing it, it's that I strongly disagree with breaking code for no benefit besides what some people will arbitrarily think is cleaner code, and others will not.

Reply via email to