interface I1 interface I2 interface Lazy { operator fun getValue(a1: Any, a2: Any): T } fun lazy(f: () -> T): Lazy = throw Exception() class A { private inner class B { val o1 = object : I1 {} val o2 by lazy { object : I1 {} } val o3 = object : I1, I2 {} // FIR allows this since the containing class is private val o4 by lazy { // FIR allows this since the containing class is private object : I1, I2 {} } private val privateO1 = object : I1 {} private val privateO2 by lazy { object : I1 {} } private val privateO3 = object : I1, I2 {} private val privateO4 by lazy { object : I1, I2 {} } } }