Improve framework name clash detection for property setters
Setters for equally named properties don't clash. Fix #1843
This commit is contained in:
committed by
SvyatoslavScherbina
parent
86e9908aff
commit
40847df19f
+6
-3
@@ -444,12 +444,15 @@ private fun ObjCExportMapper.canHaveSameSelector(first: FunctionDescriptor, seco
|
|||||||
if (first.extensionReceiverParameter?.type != second.extensionReceiverParameter?.type) {
|
if (first.extensionReceiverParameter?.type != second.extensionReceiverParameter?.type) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if (first.valueParameters.map { it.type } != second.valueParameters.map { it.type }) {
|
|
||||||
|
if (first is PropertySetterDescriptor && second is PropertySetterDescriptor) {
|
||||||
|
// Methods should merge in any common subclass as it can't have two properties with same name.
|
||||||
|
} else if (first.valueParameters.map { it.type } == second.valueParameters.map { it.type }) {
|
||||||
|
// Methods should merge in any common subclasses since they have the same signature.
|
||||||
|
} else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise both are Kotlin member methods should merge in any common subclass.
|
|
||||||
|
|
||||||
// Check if methods have the same bridge (and thus the same ABI):
|
// Check if methods have the same bridge (and thus the same ABI):
|
||||||
return bridgeMethod(first) == bridgeMethod(second)
|
return bridgeMethod(first) == bridgeMethod(second)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user