digitalmars.D.bugs - [bug] static constructor not invoked for 'inner' class
D doesn't have inner classes per se, but you can happily declare a class within a method/function/class, which is great. However, if you declare one of these 'inner' classes with a static constructor, said constructor never gets invoked. I don't have the example any more, but it was along these lines: void testSomething() { class Inner { static this() { // never called } this() { // called correctly } } Inner inner = new Inner(); } Moving the Inner class to module scope resolves the issue, but that's not the point ... - Kris
May 02 2004
Here's an example of the bug: void main() { class S { static this() { printf ("static constructor\n"); } this() { printf ("class constructor\n"); } } new S; } - Kris "Kris" <someidiot earthlink.dot.dot.dot.net> wrote in message news:c74fis$gfi$1 digitaldaemon.com...D doesn't have inner classes per se, but you can happily declare a class within a method/function/class, which is great. However, if you declareoneof these 'inner' classes with a static constructor, said constructor never gets invoked. I don't have the example any more, but it was along these lines: void testSomething() { class Inner { static this() { // never called } this() { // called correctly } } Inner inner = new Inner(); } Moving the Inner class to module scope resolves the issue, but that's not the point ... - Kris
Jun 02 2004
This works correctly when I try it. -Walter
Aug 29 2004