Infinite loop in compiler with forward reference

Justin Johansson no at spam.com
Fri Aug 13 16:39:38 PDT 2010


Compiling the following with latest DMD D2 sends the compiler into an
infinite loop.  The culprit line seems to be the alias definition.
Can someone else please confirm.
Thanks Justin




module test;


class Base
{
    Base foo();
}

class Foo: Base
{
    static class Bar: Foo
    {
       Bar foo() {
          return this;
       }
    }

    Bar foo();
}

alias Foo.Bar FooBar;


void main()
{
}



test.d(10): Error: class test.Foo is forward referenced when looking for 
'eVr'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'eWr'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'eXr'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'eYr'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'eZr'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e0r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e1r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e2r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e3r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e4r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e5r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e6r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e7r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e8r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e9r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'e_r'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'eaar'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'ebar'
test.d(10): Error: class test.Foo is forward referenced when looking for 
'ecar'
....


More information about the Digitalmars-d mailing list