Additional point in my opinion: Calling UFCS-able annotated function by normal function call syntax is still vaild. But not annotatied function shouldn't be allowed with member-like call syntax.
void f(T)(T this, int n){...} // UFCS annotated
void g(T)(T x, int n){...} // do not UFCS annotated
struct Foo{}
Foo foo;
foo.f(10); // member-like syntax - ok
f(foo, 10); // normal call syntax - still ok - UNIFIED function call syntax.
//foo.g(10); // Invalid
g(foo, 10); // normal call syntax - ok
Kenji
