class ConstructorCalls {

    void testNormalConstructor() {
        new OtherClass();
    }

    void testInnerClassConstructor() {
        OtherClass oc = new OtherClass();
        oc.new InnerClass();
    }

    void testInnerClassConstructorWithNewScope() {
        new OtherClass().new InnerClass();
    }

    void testInnerInnerClassConstructor() {
        new OtherClass().new InnerClass().new InnerInnerClass();
    }
}

class OtherClass {

    OtherClass() {}

    class InnerClass {

        InnerClass() {}

        class InnerInnerClass {

            InnerInnerClass() {}
        }
    }
}
