Explicitly instantiated template functions do not work as array properties. Consider the example: void foo()(char[] x) {} void main() { char[] y; foo(y); // OK foo!()(y); // OK y.foo(); // OK y.foo!()(); // Error: no property 'foo' for type 'char[]' } I expect y.foo!()() to be equivalent of foo!()(y).
Works in D2
Closing as WONTFIX as it has been fixed in D2.