digitalmars.D.bugs - [Issue 23644] New: Reordering template parameters causes IFTI to fail
- d-bugmail puremagic.com (34/34) Jan 20 2023 https://issues.dlang.org/show_bug.cgi?id=23644
https://issues.dlang.org/show_bug.cgi?id=23644 Issue ID: 23644 Summary: Reordering template parameters causes IFTI to fail Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: snarwin+bugzilla gmail.com As of DMD 2.101.2, the following program fails to compile: --- void f(U : T[], T)(U arg) {} void g(T, U : T[])(U arg) {} void main() { int[] a; f(a); // ok g(a); // IFTI fails } --- The error messsage is --- bug.d(9): Error: none of the overloads of template `bug.g` are callable using argument types `!()(int[])` bug.d(2): Candidate is: `g(T, U : T[])(U arg)` --- The only difference between `f` and `g` is the order in which their template parameters are listed, yet the call to `f` succeeds, while the call to `g` fails to compile. --
Jan 20 2023