Formal Review of std.regex (FReD)

Christian Kamm kamm-incasoftware at removethis.de
Sun Oct 9 00:26:48 PDT 2011


Andrei Alexandrescu wrote:

> On 10/8/11 3:34 PM, Dmitry Olshansky wrote:
>> I've found out what caused my builds to break. The thing is that both
>> std.file & std.stdio use fully qualified std.c.stdio.func calls but
>> never actually import std.c.stdio in any way. I wasn't even aware that's
>> possible.
> 
> That may be a bug in the compiler. A symbol shouldn't be visible unless
> e.g. publicly imported from an imported module (could that be the case)?

It's definitely a bug. Once an import is processed, the package is visible 
globally as long as the parent package is accessible. This compiles:

touch dmd2/src/phobos/std/empty.d

a.d:
import std.stdio;

b.d:
import std.empty;
void main() { std.stdio.writeln("hi!"); }


More information about the Digitalmars-d mailing list