I had been trying to advance the phase to the next.
Now, an experimental pull request is here.
----
This change can distinguish almost usages between property and non-property syntax
int func() { return 1; }
void func(int n) { }
@property int prop() { return 2; }
@property void prop(int n) { }
void main() {
// Without -property switch, all lines can compile.
// With -property switch:
func(); // OK -> OK
func(1); // OK -> OK
func; // OK -> OK [*]
func = 1; // OK -> NG (fixed!)
prop(); // OK -> NG (fixed!)
prop(1); // OK -> NG (fixed!)
prop; // OK -> OK
prop = 1; // OK -> OK
}
First exception is [*], keeping the line is necessary to allow UFCS chain without redundant parentheses (e.g. r.map!(a=>a*2).array). It is acceptable to me, at least.