On 13-Aug-2015 16:56, Timon Gehr wrote:
[snip]
It has nothing to do with the import being public. This works:

---
struct Std{
     import std.stdio;
}
void main(){
     Std.writeln("Nice!");
}
---

(It also works if main and Std are defined in different modules.)

but I also don't see how this could work any other way
if scoped, public imports are allowed.
...

Easy. Just treat aggregate scopes and module scopes differently. (They
are treated differently even now: all imports are 'public' in aggregate
scopes, but not at module scope.) I think this shouldn't be done though.

In any case, I guess we agree that this idiom should work for public
imports, but not for non-public ones (so the current behaviour with
non-public imports is accepts-invalid, but Dicebot's code should be fine)?

Agreed, public import case looks legitimate.

--
Dmitry Olshansky

Reply via email to