On Thu, 09 Feb 2012 20:37:36 +0100, Sönke Ludwig <[email protected]> wrote:

Am 09.02.2012 17:27, schrieb Walter Bright:


On 2/9/2012 1:48 AM, Sönke Ludwig wrote:

Another thing is that while private selective imports are not public
anymore, private renamed imports now conflict in other modules in
this scenario:
---
module a;
import std = b;
module b;
import a;
void f(){ std.stdio.writefln("X"); } // Error: std at  conflicts with
std at a.d(2)
---

I think it should conflict - can't have std as both an alias and a
package.
Sorry, the example was incomplete and maybe a bit misleading:
---
module a;
private import std = b;
---
---
module b;
private import std.stdio;
void f(){ std.stdio.writefln("X"); } // conflict
---

Private in it's current form doesn't controls access not visibility.

But then module b introduces "std" into it's own scope. If we'd follow the usual
rule of symbol lookup, then there shouldn't be any conflict.
_______________________________________________
dmd-beta mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-beta

Reply via email to