May 01, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1209

           Summary: static class constructor not called
           Product: D
           Version: 1.014
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: leo.dahlmann@gmail.com


In the following code the static constructor of Foo is not called and thus the assert in main fails.

If you replace this() with static this() it works.

I think, because this() is inside a static block, it should be static.

################################################################# uint x = 0;

class Foo
{
        static
        {
                this()
                {
                        x++;
                }
        }
}

void main()
{
        assert(x == 1);
}


-- 

May 20, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1209


thomas-dloop@kuehne.cn changed:

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




------- Comment #1 from thomas-dloop@kuehne.cn  2007-05-20 13:11 -------
http://www.digitalmars.com/d/class.html :
#
# The static in the static constructor declaration is not an
# attribute, it must appear immediately before the this
#


--