[Issue 80] Cannot instantiate nested class in nested function

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jul 22 02:20:41 PDT 2009


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


Don <clugdbug at yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
                 CC|                            |clugdbug at yahoo.com.au
         Resolution|                            |FIXED




--- Comment #7 from Don <clugdbug at yahoo.com.au>  2009-07-22 02:20:40 PDT ---
Cases A and B pass, but C and D are still failing (DMD 2.031 and 1.046).

However, it's pretty clear that cases C and D are invalid. A reduced version of
C generates this error:
ancient.d(6): Error: this for i needs to be type Outer not type Inner*

and that is correct. 'Inner' is only _defined_ in 'Outer', it's not a _member_
of 'Outer'. (All kinds of bad things would happen if this worked; you wouldn't
be able to transfer an Inner from one Outer to another, for example).
Marking as fixed, since the two valid cases are fixed now.
-----
struct Outer{
    int i;        
    struct Inner{
        int fest() { return i; }
    }
    void test(){
      Inner z;
      int k = z.fest();
    }
}

int main(){
Outer outer;
    outer.i = 1;
    outer.test();
    return 0;
}

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


More information about the Digitalmars-d-bugs mailing list