Show nested template function signature in candidate message (#16827)

Part of Bugzilla 20713 - Improve Template Deduction Error Message Given Template Parameter Default Values
This commit is contained in:
Nick Treleaven 2024-09-05 01:33:34 +01:00 committed by GitHub
parent 6a79518936
commit 855521dd86
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 2 deletions

View file

@ -0,0 +1,18 @@
/*
TEST_OUTPUT:
---
fail_compilation/nested_template_constraint.d(17): Error: template `foo` is not callable using argument types `!()(string, int)`
fail_compilation/nested_template_constraint.d(10): Candidate is: `foo(int x = 0)`
fail_compilation/nested_template_constraint.d(11): - Containing: `foo(T, U)(T t, U u)`
---
*/
template foo(int x = 0) {
void foo(T, U)(T t, U u)
if (is(T == int) && is(U == int)) {}
}
void main()
{
foo("hello", 4);
}