Beta D 2.071.0-b2

Steven Schveighoffer via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Apr 4 09:13:09 PDT 2016


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


More information about the Digitalmars-d-announce mailing list