https://issues.dlang.org/show_bug.cgi?id=5344
Kenji Hara <k.hara...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #4 from Kenji Hara <k.hara...@gmail.com> --- This is not a bug, it's normal name lookup behavior with inheritance. For example: class A { void foo(int l) {} } class B : A { void foo(string l, int k) {} } void main() { B b = new B(); //b.foo(0); // NG, because B.foo hides A.foo b.foo("x", 1); // OK } There's two options: 1. Explicitly specify the base class/interface name on the foo call. b.A.foo(1); // OK 2. Add an alias due to insert overload in the B.foo class B : A { alias foo = A.foo; // OK void foo(string l, int k) {} } b.foo("x", 1); // ok b.foo(1); // also OK --