From eda913554d7097d034b4b144938f2d8f8dc45f8d Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Wed, 17 Nov 2021 16:56:45 +0300 Subject: [PATCH] IR: compute correct IR-based mangles for Java fields --- .../common/serialization/mangle/ir/IrMangleComputer.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt index 5292e8fd619..bd977da5a8d 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/mangle/ir/IrMangleComputer.kt @@ -256,8 +256,15 @@ abstract class IrMangleComputer(protected val builder: StringBuilder, private va typeParameters.collectForMangler(builder, MangleConstant.TYPE_PARAMETERS) { mangleTypeParameter(this, it) } builder.append(declaration.name.asString()) + + if (declaration.isSyntheticForJavaField) { + builder.append(MangleConstant.JAVA_FIELD_SUFFIX) + } } + private val IrProperty.isSyntheticForJavaField: Boolean + get() = origin == IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB && getter == null && setter == null + override fun visitField(declaration: IrField) { val prop = declaration.correspondingPropertySymbol if (compatibleMode || prop == null) { // act as used to be (KT-48912)