Kotlin: Fix field lookup in Android synthetic classes

This commit is contained in:
Tamas Vajk
2022-09-28 15:23:34 +02:00
parent d3c3f3bed9
commit 375698f975

View File

@@ -366,9 +366,8 @@ open class KotlinUsesExtractor(
if (replacementClass === parentClass) if (replacementClass === parentClass)
return f return f
return globalExtensionState.syntheticToRealFieldMap.getOrPut(f) { return globalExtensionState.syntheticToRealFieldMap.getOrPut(f) {
val result = replacementClass.declarations.findSubType<IrField> { replacementDecl -> val result = replacementClass.declarations.findSubType<IrField> { replacementDecl -> replacementDecl.name == f.name }
replacementDecl.name == f.name ?: replacementClass.declarations.findSubType<IrProperty> { it.backingField?.name == f.name}?.backingField
}
if (result == null) { if (result == null) {
logger.warn("Failed to replace synthetic class field ${f.name}") logger.warn("Failed to replace synthetic class field ${f.name}")
} else { } else {