Bug 11242 – [REG2.064beta] Fails to infer template argument with inout
Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-10-13T04:44:00Z
Last change time
2013-10-14T12:36:08Z
Keywords
pull, rejects-valid
Assigned to
nobody
Creator
doob
Comments
Comment #0 by doob — 2013-10-13T04:44:17Z
The following code:
inout(T[]) fromString8(T) (inout(char[]) s, T[] dst) // line 12
{
return s;
}
void main ()
{
char[] a;
fromString8(a, a); // line 20
}
Results in this error message:
main.d(20): Error: template main.fromString8 does not match any function template declaration. Candidates are:
main.d(12): main.fromString8(T)(inout(char[]) s, T[] dst)
main.d(20): Error: template main.fromString8(T)(inout(char[]) s, T[] dst) cannot deduce template function from argument types !()(char[], char[])
This compile:
fromString8!(char)(a, a);
And if I remove "inout" it compiles as well.
The commit that broke this code is: https://github.com/D-Programming-Language/dmd/commit/89e1796d011847494c160db8cb90792765fc4e58