January 20, 2023 [Issue 23644] New: Reordering template parameters causes IFTI to fail | ||||
---|---|---|---|---|
| ||||
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. -- |
Copyright © 1999-2021 by the D Language Foundation