fun callRemovedOrNormalFunction(removed: Boolean): String = if (removed) removedFunction() else function() fun callRemovedOrNormalFunctionOnObject(removed: Boolean): String = if (removed) A().removedFunction() else A().function() fun readRemovedOrNormalProperty(removed: Boolean): String = if (removed) removedProperty else property fun readRemovedOrNormalPropertyOnObject1(removed: Boolean): String = if (removed) A().removedProperty1 else A().property1 fun readRemovedOrNormalPropertyOnObject2(removed: Boolean): String = if (removed) A().removedProperty2 else A().property2 @Suppress("NOTHING_TO_INLINE") inline fun callInlinedRemovedFunction() = removedFunction() @Suppress("NOTHING_TO_INLINE") inline fun readInlinedRemovedProperty() = removedProperty class C2 : C() { override fun removedOpenFunction(): String = "O" // does not call super override val removedOpenProperty: String get() = "O" // does not call super } class I2 : I { override fun removedOpenFunction(): String = "K" // does not call super override val removedOpenProperty: String get() = "K" // does not call super }