class Outer { class Inner { static Inner createInner() { return new Inner(); //need 'this' to access member this } } } Is this a bug? If Inner is not nested, it works as expected: class Inner { static Inner createInner() { return new Inner() } } D version: 2.066.1