// !DIAGNOSTICS: -NOTHING_TO_INLINE @PublishedApi internal class InternalClassPrivateConstructor private constructor() { companion object { internal inline operator fun invoke(): InternalClassPrivateConstructor = InternalClassPrivateConstructor() internal inline operator fun invoke(i: Int): InternalClassPrivateConstructor = InternalClassPrivateConstructor(i) } } private class PrivateClass public constructor() { operator fun invoke() = 42 } open class OpenClass { protected operator fun invoke() = 42 inline fun foo() { this() } } @PublishedApi internal open class InternalClassProtectedConstructor protected constructor() { companion object { internal inline operator fun invoke(): InternalClassProtectedConstructor = InternalClassProtectedConstructor() } } inline fun publicInline() { InternalClassPrivateConstructor() InternalClassPrivateConstructor.invoke() InternalClassProtectedConstructor() } internal inline fun internalInline() { val pc = PrivateClass() pc() }