"Jonathan M Davis" <jmdavisp...@gmx.com> wrote in message news:mailman.483.1286572389.858.digitalmar...@puremagic.com... > On Friday, October 08, 2010 13:56:14 Nick Sabalausky wrote: >> >> Additionally, with that understanding in place, this: >> >> @property void foo(int x) {...} >> (3).foo(); >> >> Is probably the one place where UFC syntax should never be allowed, >> because >> it's obviously a setter, and since when does this ever make any sence: >> >> int x; >> (3).x; // Set x to 3?? WTF?? > > If literals are considered const or immutable, then this takes care of > itself, > since then the type system would then disallow it. >
Maybe hunger is blinding me ATM, but don't see how. Unless it would also prevent this: void bar(int a) {...} bar(3); // Cannot implicitly cast away immutable But that would obviously be a bad thing. And even at that, there's still this that would need to be prevented: @property void foo(int x) {...} int x = cast(int)3; x.foo; // Set foo to 3 with stupid syntax