Thread overview
[Issue 282] New: Bizarre circular import nested name invisibility issue
Aug 11, 2006
d-bugmail
Aug 11, 2006
Derek Parnell
Aug 11, 2006
d-bugmail
Aug 11, 2006
d-bugmail
Sep 18, 2009
Rainer Schuetze
Dec 29, 2009
Walter Bright
Dec 29, 2009
Leandro Lucarella
Dec 29, 2009
Leandro Lucarella
Dec 31, 2009
Walter Bright
August 11, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=282

           Summary: Bizarre circular import nested name invisibility issue
           Product: D
           Version: 0.163
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: jarrett.billingsley@gmail.com


I really don't know what else to call this, and it's a bit tedious to get to happen.  So here's the general idea:

------ [modules/test1.d] --------

module modules.test1;
import modules.test2;

struct A
{
        enum B
        {
                One,
                Two
        }
}

void bar()
{
        foo();
}

--------- [modules/test2.d] ---------

module modules.test2;
import modules.test1;

A.B foobar; // error, no property B for type A?!

void foo()
{
        int x;

        if(x == A.B.One) // but this is OK
                x = 1;
}

---------------------------------

Some interesting facts:

- This only seems to happen if the modules are in a package.  If they're two top-level modules, it works fine.

- Notice I can't use A.B as a type, but I can in fact access A.B's members.

- Using static imports/aliased imports does not help.

I don't know how to get it to not work the way it does in MiniD - that is, I can't even use A.B in the same module that A.B is defined!

This is, for me, something of a showstopper.. I'll probably be using 0.162 for a bit, which is sad, considering how cool the 0.163 features are!  I don't know if I should change the priority of this bug, but this is something that can't be worked around easily, so I'd put it pretty high up there.


-- 

August 11, 2006
On Fri, 11 Aug 2006 03:43:18 +0000 (UTC), d-bugmail@puremagic.com wrote:


> This is, for me, something of a showstopper.. I'll probably be using 0.162 for a bit, which is sad, considering how cool the 0.163 features are!  I don't know if I should change the priority of this bug, but this is something that can't be worked around easily, so I'd put it pretty high up there.

It depends on the order that you compile the modules.

This works...

 dmd -c modules\test2 modules\test1


This doesn't ...

 dmd -c modules\test1 modules\test2

-- 
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Down with mediocrity!"
11/08/2006 3:02:17 PM
August 11, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=282


dawid.ciezarkiewicz@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dawid.ciezarkiewicz@gmail.co
                   |                            |m




------- Comment #1 from dawid.ciezarkiewicz@gmail.com  2006-08-11 07:32 -------
Related to #204. Maybe even same problem.


-- 

August 11, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=282





------- Comment #2 from dawid.ciezarkiewicz@gmail.com  2006-08-11 07:33 -------
(In reply to comment #1)
> Related to #204. Maybe even same problem.
> 

Err. #102 . Sorry.


-- 

August 11, 2006
"Derek Parnell" <derek@nomail.afraid.org> wrote in message news:17moo13ephs7r.19lhtzygw8iie$.dlg@40tude.net...

> It depends on the order that you compile the modules.
>
> This works...
>
> dmd -c modules\test2 modules\test1
>
>
> This doesn't ...
>
> dmd -c modules\test1 modules\test2

Okay, here's something frustrating.  That works, and I'm very happy about that.  But if you include other modules on the commandline before the conflicting modules, such as:

dmd -c modules\test3 modules\test2 modules\test1

It no longer works.  But put that other module at the end, and it does.

Tedious, but hopefully Walter will fix this.  Very soon.


September 18, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=282



--- Comment #3 from Rainer Schuetze <r.sagitario@gmx.de> 2009-09-18 00:56:35 PDT ---
Created an attachment (id=455)
ensure semantic run when searching struct for members

When searching members of a class that is not yet semantically analyzed, the analysis is run on it. This is not done for structs or unions, which is probably an omission.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 29, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=282


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com


--- Comment #4 from Walter Bright <bugzilla@digitalmars.com> 2009-12-29 03:07:49 PST ---
Changeset 318

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 29, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=282


Leandro Lucarella <llucax@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |llucax@gmail.com


--- Comment #5 from Leandro Lucarella <llucax@gmail.com> 2009-12-29 09:02:30 PST ---
http://d.puremagic.com/issues/show_bug.cgi?id=282

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 29, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=282



--- Comment #6 from Leandro Lucarella <llucax@gmail.com> 2009-12-29 09:02:56 PST ---
(In reply to comment #5)
> http://d.puremagic.com/issues/show_bug.cgi?id=282

Damn! http://www.dsource.org/projects/dmd/changeset/318

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 31, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=282


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


--- Comment #7 from Walter Bright <bugzilla@digitalmars.com> 2009-12-31 11:09:22 PST ---
Fixed dmd 1.054 and 2.038

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------