public import and bugs it causes

Simen kjaeraas simen.kjaras at gmail.com
Sat May 15 03:09:48 PDT 2010


Alex Makhotin <alex at bitprox.com> wrote:

> bearophile wrote:
>> Note that D module system is not modelled on C#.
>
> I think that to become successful competitor for such languages as C#,  
> the D language requires improvement.
>
> In the bug I encountered, I mistyped the variable and it *matched the  
> global variable accidentally*. I was unaware of it because the compiler  
> was silent, but IMHO it, at least, should give me a warning.
> It's not possible in C#. That's what I meant.

Example:

------------------
module a;

class foo {
}
------------------
module b;

import a;

class fool {
}

void bar( ) {
     auto f = new foo( ); // Oh noes, I meant fool, not foo!
}
------------------

As you can see, this is perfectly possible with things other than global
variables. One could even imagine mistyping a module name and still getting
a program that compiles. Now how does C# make that impossible?

-- 
Simen


More information about the Digitalmars-d mailing list