On 4/3/16 7:59 AM, tost wrote:
On Wednesday, 30 March 2016 at 11:03:51 UTC, Martin Nowak wrote:
Second beta for the 2.071.0 release.

http://dlang.org/download.html#dmd_beta
http://dlang.org/changelog/2.071.0.html

Please report any bugs at https://issues.dlang.org

-Martin

//foo.d
module foo;

void main() {}

class A {

     void bar(int i) {}

     void baz() {
         import othermodule;
         bar("abc");
     }
}

// othermodule.d
module othermodule;

void bar(string s) {}

compiled with

dmd foo.d othermodule.d

gives

foo.d(11): Error: function foo.A.bar (int i) is not callable using
argument types (string)

is this a feature of the new name lookup algorithm or a bug? Adapting my
codebase would be trivial :)

Yes. There are new lookup rules. See my post about it here: http://www.schveiguy.com/blog/2016/03/import-changes-in-d-2-071/

To fix, you should import with selective:

import othermodule: bar;

If you need both bar(int) and bar(string) from their respective locations, I'd suggest a renaming import.

-Steve

Reply via email to