Bug 15120 – alias overload set combine error message
Status
RESOLVED
Resolution
DUPLICATE
Severity
major
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2015-09-26T18:34:00Z
Last change time
2015-09-27T00:31:38Z
Assigned to
nobody
Creator
john.loughran.colvin
Comments
Comment #0 by john.loughran.colvin — 2015-09-26T18:34:49Z
//modA.d
auto foo(T)(T a){}
//modB.d
auto foo(T)(T a){}
//modC.d
import modB, modC;
alias foo = modB.foo;
alias foo = modC.foo;
void main()
{
.foo(3.4f);
}
modA.d(7): Error: modA.foo called with argument types (float) matches both:
modB.d(1): modB.foo!float.foo(float a)
and:
modC.d(1): modC.foo!float.foo(float a)
which makes perfect sense. However, if we drop the . before foo, i.e.
foo(3.4f);
modA.d(7): Error: overload alias 'foo' is not a variable
which is very odd.
Comment #1 by k.hara.pg — 2015-09-27T00:31:38Z
It's fixed in git head as a part of issue 14858.
*** This issue has been marked as a duplicate of issue 14858 ***