internal class Outer {
    private inner class Inner1() {
        constructor(a: Int) : this()
        protected constructor(c: Char) : this()
        private constructor(b: Boolean) : this()
    }

    protected inner class Inner2() {
        constructor(a: Int) : this()
        protected constructor(c: Char) : this()
        private constructor(b: Boolean) : this()
    }

    internal inner class Inner3() {
        constructor(a: Int) : this()
        protected constructor(c: Char) : this()
        private constructor(b: Boolean) : this()
    }

    inner class Inner4() {
        constructor(a: Int) : this()
        protected constructor(c: Char) : this()
        private constructor(b: Boolean) : this()
    }

    fun foo() {
        val inner1 = Inner1(1)
        val inner2 = Inner2(2)
        val inner3 = Inner3(3)
        val inner4 = Inner4(4)
    }
}
