October 10 [Issue 24804] New: IFTI fails for variadic static array parameter with narrowing conversion on templated length | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=24804 Issue ID: 24804 Summary: IFTI fails for variadic static array parameter with narrowing conversion on templated length 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.109.1, the following program fails to compile: --- void test(ubyte n)(int[n] a...) {} void main() { test(1, 2, 3); // error } --- The error message is: --- bug.d(5): Error: template `test` is not callable using argument types `!()(int, int, int)` bug.d(1): Candidate is: `test(ubyte n)(int[n] a...)` --- Any of the following changes cause the program to compile successfully: - Changing the call site to `test([1, 2, 3])` - Changing the call site to `test!3(1, 2, 3)` - Changing the template parameter of `test` to `size_t n` -- |
Copyright © 1999-2021 by the D Language Foundation