On Fri, 30 Mar 2012 10:46:19 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

Starting a new thread from one in announce:

http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP16

Please comment, after which Walter will approve. Walter's approval means that he would approve a pull request implementing DIP16 (subject to regular correctness checks).


Destroy!

BTW, this case makes the part of DIP16 which wants to shortcut fully qualified names invalid, or at least costly (I posted this code in another part of the thread, but I thought I'd bring it up higher).

The following is valid code today:

a/b.d:

module a.b;

void foo() {}
struct b
{
   static void foo() {}
}

main.d:
import a.b;

void main()
{
   a.b.foo();
}

If DIP16 were to be implemented, this becomes ambiguous. Is a.b.foo() the module function foo() from a.b, or is it a shortcut for a.b.b.foo()?

The main issue is, because you can shortcut the FQN, and a chain of identifiers can have repeated identifiers in them, ambiguity is possible.

Michel Fortin pointed out at least three cases of this in phobos (although I can't see how they could be ambiguous, he has a good point).

-Steve

Reply via email to