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
Comment #1 by k.hara.pg — 2013-10-13T23:00:20Z
Comment #2 by github-bugzilla — 2013-10-14T12:34:43Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/81e6841b24e8a36e55ed06f781db16b50d76a05a fix Issue 11242 - Fails to infer template argument with inout https://github.com/D-Programming-Language/dmd/commit/44c2f3dcc3f04696d30fb7755af6417d1043f872 Merge pull request #2663 from 9rnsr/fix11242 [REG2.064a] Issue 11242 - Fails to infer template argument with inout
Comment #3 by github-bugzilla — 2013-10-14T12:35:53Z
Commit pushed to 2.064 at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/5310d645810b2276f4db23009d0880c9c0968b22 Merge pull request #2663 from 9rnsr/fix11242 [REG2.064a] Issue 11242 - Fails to infer template argument with inout