Following code should compile. void foo(){} struct X(alias a) {} //template Y(T : A!f, alias A, alias f) {} //OK template Y(T : A!foo, alias A) {} //NG void main() { alias Y!(X!foo) y; // Error: template instance Y!(X!(foo)) Y!(X!(foo)) // does not match template declaration Y(T : A!(foo),alias A) }
https://github.com/D-Programming-Language/dmd/pull/958
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/630f7cbab6ea58606cef726939e2ee4cf652e217 fix Issue 8125 - TypeInstance dedunction problem https://github.com/D-Programming-Language/dmd/commit/ed68238cd1e5a7aec454840ee11e04580f974855 Merge pull request #958 from 9rnsr/fix_tided Issue 1780 & 3608 & 8125 - Fix TypeInstance deduction problems