diff --git a/compiler/ir/ir.objcinterop/src/org/jetbrains/kotlin/ir/objcinterop/IrObjCOverridablilityCondidtion.kt b/compiler/ir/ir.objcinterop/src/org/jetbrains/kotlin/ir/objcinterop/IrObjCOverridablilityCondidtion.kt index d34c3c5d8ee..e6bdcfd905d 100644 --- a/compiler/ir/ir.objcinterop/src/org/jetbrains/kotlin/ir/objcinterop/IrObjCOverridablilityCondidtion.kt +++ b/compiler/ir/ir.objcinterop/src/org/jetbrains/kotlin/ir/objcinterop/IrObjCOverridablilityCondidtion.kt @@ -36,6 +36,7 @@ object IrObjCOverridabilityCondition : IrExternalOverridabilityCondition { subMember: IrOverridableMember, ): IrExternalOverridabilityCondition.Result { if (superMember.name == subMember.name) { // Slow path: + // KT-57640: There's no necessity to implement platform-dependent overridability check for properties if (superMember is IrFunction && subMember is IrFunction) { superMember.getExternalObjCMethodInfo()?.let { superInfo -> val subInfo = subMember.getExternalObjCMethodInfo() @@ -54,17 +55,12 @@ object IrObjCOverridabilityCondition : IrExternalOverridabilityCondition { } } } - } else if (superMember.isExternalObjCClassProperty() && subMember.isExternalObjCClassProperty()) { - return IrExternalOverridabilityCondition.Result.OVERRIDABLE } } return IrExternalOverridabilityCondition.Result.UNKNOWN } - private fun IrOverridableMember.isExternalObjCClassProperty() = this is IrProperty && - (this.parent as? IrClass)?.isExternalObjCClass() == true - private fun parameterNamesMatch(first: IrFunction, second: IrFunction): Boolean { // The original Objective-C method selector is represented as // function name and parameter names (except first).