From 6b208f7c9c0421607067060f2b64bc3d844536fc Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 14 Aug 2019 11:57:35 +0200 Subject: [PATCH] JVM IR: support LanguageFeature.UseGetterNameForPropertyAnnotationsMethodOnJvm --- .../org/jetbrains/kotlin/backend/jvm/JvmLower.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt index 4b59e03a17c..0ec915c7f58 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.lower.loops.forLoopsPhase import org.jetbrains.kotlin.backend.common.phaser.* import org.jetbrains.kotlin.backend.jvm.lower.* import org.jetbrains.kotlin.codegen.OwnerKind +import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName import org.jetbrains.kotlin.ir.declarations.IrFile @@ -71,10 +72,15 @@ private val lateinitPhase = makeIrFilePhase( private val propertiesPhase = makeIrFilePhase( { context -> PropertiesLowering(context, JvmLoweredDeclarationOrigin.SYNTHETIC_METHOD_FOR_PROPERTY_ANNOTATIONS) { property -> - val getterName = property.getter?.let { getter -> - context.typeMapper.mapFunctionName(getter, OwnerKind.IMPLEMENTATION) - } ?: JvmAbi.getterName(property.name.asString()) - JvmAbi.getSyntheticMethodNameForAnnotatedProperty(getterName) + val baseName = + if (context.state.languageVersionSettings.supportsFeature(LanguageFeature.UseGetterNameForPropertyAnnotationsMethodOnJvm)) { + property.getter?.let { getter -> + context.typeMapper.mapFunctionName(getter, OwnerKind.IMPLEMENTATION) + } ?: JvmAbi.getterName(property.name.asString()) + } else { + property.name.asString() + } + JvmAbi.getSyntheticMethodNameForAnnotatedProperty(baseName) } }, name = "Properties",