I found a lack of my patch.
Code:
----
inout(T) [n] id(T, size_t n)(inout(T) [n] v){ return v; }
void main()
{
static struct S
{
ubyte[3] val = [1,2,3];
@property ref void[3] get(){ return *cast(void[3]*)&val; }
alias get this;
}
S s;
id(s);
}
Output:
----
test.d(18): Error: template test.id(T,uint n) does not match any function template declaration
test.d(18): Error: template test.id(T,uint n) cannot deduce template function from argument types !()(S)
Additional patch for repair it:
https://github.com/D-Programming-Language/dmd/pull/487