[K/N] Fix ambiguity of symbols for companion object accessors
This commit is contained in:
+9
-8
@@ -1640,7 +1640,7 @@ private fun ObjCExportCodeGenerator.createTypeAdapter(
|
|||||||
classAdapters += if (it.classSymbol.owner.isUnit()) {
|
classAdapters += if (it.classSymbol.owner.isUnit()) {
|
||||||
createUnitInstanceAdapter(it.selector)
|
createUnitInstanceAdapter(it.selector)
|
||||||
} else {
|
} else {
|
||||||
createObjectInstanceAdapter(it.classSymbol.owner, it.selector)
|
createObjectInstanceAdapter(it.classSymbol.owner, it.selector, irClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ObjCKotlinThrowableAsErrorMethod -> {
|
ObjCKotlinThrowableAsErrorMethod -> {
|
||||||
@@ -1889,15 +1889,16 @@ private fun ObjCExportCodeGenerator.createUnitInstanceAdapter(selector: String)
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun ObjCExportCodeGenerator.createObjectInstanceAdapter(
|
private fun ObjCExportCodeGenerator.createObjectInstanceAdapter(
|
||||||
irClass: IrClass,
|
objectClass: IrClass,
|
||||||
selector: String
|
selector: String,
|
||||||
|
owner: IrClass,
|
||||||
): ObjCExportCodeGenerator.ObjCToKotlinMethodAdapter {
|
): ObjCExportCodeGenerator.ObjCToKotlinMethodAdapter {
|
||||||
assert(irClass.kind == ClassKind.OBJECT)
|
assert(objectClass.kind == ClassKind.OBJECT)
|
||||||
assert(!irClass.isUnit())
|
assert(!objectClass.isUnit())
|
||||||
|
val bridgeSuffix = "${owner.computeTypeInfoSymbolName()}#$selector"
|
||||||
return generateObjCToKotlinSyntheticGetter(selector, "${irClass.computeTypeInfoSymbolName()}#$selector") {
|
return generateObjCToKotlinSyntheticGetter(selector, bridgeSuffix) {
|
||||||
initRuntimeIfNeeded() // For instance methods it gets called when allocating.
|
initRuntimeIfNeeded() // For instance methods it gets called when allocating.
|
||||||
val value = getObjectValue(irClass, startLocationInfo = null, exceptionHandler = ExceptionHandler.Caller)
|
val value = getObjectValue(objectClass, startLocationInfo = null, exceptionHandler = ExceptionHandler.Caller)
|
||||||
autoreleaseAndRet(kotlinReferenceToRetainedObjC(value))
|
autoreleaseAndRet(kotlinReferenceToRetainedObjC(value))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user