[Issue 265] New: Selective import from renamed import behaves strangely

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Jul 22 06:11:30 PDT 2006


http://d.puremagic.com/issues/show_bug.cgi?id=265

           Summary: Selective import from renamed import behaves strangely
           Product: D
           Version: 0.163
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: accepts-invalid, rejects-valid
          Severity: normal
          Priority: P3
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: deewiant at gmail.com


import io = std.stdio : foo = writefln;

void main() {
        //writefln("bar");           // doesn't work, good
        //std.stdio.foo("bar");      // doesn't work, good
        //std.stdio.writefln("bar"); // doesn't work, good
        foo("bar");                  // works fine, but a renamed import should
require a FQN according to the spec
        io.writefln("bar");          // works fine, but there shouldn't be a
writefln in io, just a foo
        //io.foo("bar");             // doesn't work: undefined identifier
module stdio.foo
}
--

The inline comments hopefully explain my view of the situation well enough.
Essentially: the behaviour of the first three lines in main() is correct and
that of the last three is incorrect. Only the last call, io.foo("bar"), should,
in my opinion, compile.

Or then the specification needs correcting. Issue 264 and this are both about
combining different import methods in ways that apparently haven't been
considered, and probably need to be explicitly allowed and shown in examples or
disallowed.

In addition, I feel that the last error message is somewhat strange: "module
stdio.foo"? As I understand it there should be nothing but a module io, which
contains only one function, foo.


-- 




More information about the Digitalmars-d-bugs mailing list