https://issues.dlang.org/show_bug.cgi?id=17120
Issue ID: 17120
Summary: error messages from wrong overload
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: critical
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
struct S(size_t _)
{
// void foo(size_t i)(S!(i) rhs){} //OK
void foo(size_t i)(S!(+i) rhs){} //Error
void foo(){}
}
void main()
{
S!4 v1;
v1.foo();
}
test.d(4): Error: undefined identifier 'i'
Also, if I comment out the `void foo(){}` overload the compiler still complains
about the undefined identifier, but also prints the "cannot deduce function
from argument types" as expected.
--