diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectRegenerationInfo.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectRegenerationInfo.kt index 825cc79517f..59da7dff790 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectRegenerationInfo.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectRegenerationInfo.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.codegen.inline import java.util.* class AnonymousObjectRegenerationInfo internal constructor( - private val ownerInternalName: String, + override val oldClassName: String, private val needReification: Boolean, val lambdasToInline: Map, private val capturedOuterRegenerated: Boolean, @@ -28,7 +28,7 @@ class AnonymousObjectRegenerationInfo internal constructor( private val isStaticOrigin: Boolean, private val nameGenerator: NameGenerator) : RegenerationInfo() { - private val newLambdaType: String by lazy { + override val newClassName: String by lazy { nameGenerator.genLambdaClassName() } @@ -49,10 +49,6 @@ class AnonymousObjectRegenerationInfo internal constructor( HashMap(), false, alreadyRegenerated, null, isStaticOrigin, nameGenerator) { } - override fun getOldClassName(): String { - return ownerInternalName - } - override fun shouldRegenerate(sameModule: Boolean): Boolean { return !alreadyRegenerated && (!lambdasToInline.isEmpty() || !sameModule || capturedOuterRegenerated || needReification) } @@ -62,8 +58,4 @@ class AnonymousObjectRegenerationInfo internal constructor( // because it can be local function from outer scope return !isStaticOrigin } - - override fun getNewClassName(): String { - return newLambdaType - } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.java index 51b1ecc084d..8a475602ce9 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.java @@ -191,7 +191,6 @@ public class AnonymousObjectTransformer extends ObjectTransformer(val regenerationInfo: T, protected fun createRemappingClassBuilderViaFactory(inliningContext: InliningContext): ClassBuilder { val classBuilder = state.factory.newVisitor( JvmDeclarationOrigin.NO_ORIGIN, - Type.getObjectType(regenerationInfo.getNewClassName()), + Type.getObjectType(regenerationInfo.newClassName), inliningContext.root.callElement.containingFile ) @@ -44,7 +44,7 @@ abstract class ObjectTransformer(val regenerationInfo: T, fun createClassReader(): ClassReader { - return InlineCodegenUtil.buildClassReaderByInternalName(state, regenerationInfo.getOldClassName()) + return InlineCodegenUtil.buildClassReaderByInternalName(state, regenerationInfo.oldClassName) } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/RegenerationInfo.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/RegenerationInfo.kt index bad24f12172..c9ebe4412ba 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/RegenerationInfo.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/RegenerationInfo.kt @@ -18,9 +18,9 @@ package org.jetbrains.kotlin.codegen.inline abstract class RegenerationInfo() { - abstract fun getOldClassName(): String + abstract val oldClassName: String - abstract fun getNewClassName(): String + abstract val newClassName: String abstract fun shouldRegenerate(sameModule: Boolean): Boolean @@ -28,24 +28,16 @@ abstract class RegenerationInfo() { } -class WhenMappingRegenerationInfo(val oldName: String, val nameGenerator: NameGenerator) : RegenerationInfo() { +class WhenMappingRegenerationInfo(override val oldClassName: String, val nameGenerator: NameGenerator) : RegenerationInfo() { - val newName by lazy { - nameGenerator.genLambdaClassName() + oldName + override val newClassName by lazy { + nameGenerator.genLambdaClassName() + oldClassName.substringAfterLast("/") } override fun shouldRegenerate(sameModule: Boolean): Boolean { throw UnsupportedOperationException() } - override fun getOldClassName(): String { - return oldName - } - - override fun getNewClassName(): String { - return newName - } - override fun canRemoveAfterTransformation(): Boolean { return true }