digitalmars.D.bugs - [Issue 16885] New: Cannot deduce function from argument type when
- via Digitalmars-d-bugs (36/36) Dec 01 2016 https://issues.dlang.org/show_bug.cgi?id=16885
https://issues.dlang.org/show_bug.cgi?id=16885 Issue ID: 16885 Summary: Cannot deduce function from argument type when mixing template instantiation and implicit convertion Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: mathias.lang sociomantic.com Sorry for the very generic title, didn't knew how to put it. This snippet should compile: ``` T[] tail (T) (T[] v, in T[] i, out T[] o) { return v; } void main () { const(char)[] p1, p2; immutable(char)[] pi; tail(p1, pi, p2); } ``` As there is one possible instantiation for tail, which is `T=const(char)`. But here the compiler fails to see it and spit out: ``` lol.d(11): Error: template lol.tail cannot deduce function from argument types !()(const(char)[], string, const(char)[]), candidates are: lol.d(1): lol.tail(T)(T[] v, in T[] i, out T[] o) ``` --
Dec 01 2016