digitalmars.D.bugs - [Issue 23576] New: Better Error Message When Forgetting To Pass A
- d-bugmail puremagic.com (46/46) Dec 23 2022 https://issues.dlang.org/show_bug.cgi?id=23576
https://issues.dlang.org/show_bug.cgi?id=23576 Issue ID: 23576 Summary: Better Error Message When Forgetting To Pass A Template Parameter Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: jack jackstouffer.com Current Behavior Consider the following program import std; void test1(uint id, uint __) { int x = 0; } void test2(C)(uint id) { int x = 0; } void main() { uint a = 0; test1(a); test2(a); } For test1, DMD gives a good error message: onlineapp.d(16): Error: function `onlineapp.test1(uint id, uint __)` is not callable using argument types `(uint)` This tells the user exactly what's wrong. Great! On the other hand, the test2 error message isn't as helpful onlineapp.d(17): Error: none of the overloads of template `onlineapp.test2` are callable using argument types `!()(uint)` onlineapp.d(8): Candidate is: `test2(C)(uint id)` Expected Behavior: The error message should be something like onlineapp.d(16): Error: function `onlineapp.test2(C)(uint id)` is not callable using argument types `(uint)` --
Dec 23 2022