On Monday, 19 November 2012 at 18:21:55 UTC, Mehrdad wrote:
Why don't we just outright disallow expression-statements?
After all,
2 + 3;
should not be a valid statement, and so
foo.property;
should not be, either.
Hmmm I would say if it's const/immutable and pure then it would
be an error (Side effects considered after all), otherwise
popFront may not work (it is a property I believe...right?).
So let's assume I make some struct to call the PC Speaker (for
whatever reason) then the following would break.
struct PCSpeaker {
int dingsCalled;
void ding() @property {
dingsCalled++;
//some low level calls
}
}
However if it was...
void ding() @property const pure
We know there's no side effects (and it can't modify the
struct), which then 'ding' could be an error on it's own
(Although without a return value that would make the signature
completely useless).