Old/NewClassName funs in RefenerationInfo converted to properties
This commit is contained in:
+2
-10
@@ -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<Int, LambdaInfo>,
|
||||
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<Int, LambdaInfo>(), 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
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -191,7 +191,6 @@ public class AnonymousObjectTransformer extends ObjectTransformer<AnonymousObjec
|
||||
|
||||
classBuilder.done();
|
||||
|
||||
regenerationInfo.setNewLambdaType(newLambdaType);
|
||||
return transformationResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ abstract class ObjectTransformer<T : RegenerationInfo>(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<T : RegenerationInfo>(val regenerationInfo: T,
|
||||
|
||||
|
||||
fun createClassReader(): ClassReader {
|
||||
return InlineCodegenUtil.buildClassReaderByInternalName(state, regenerationInfo.getOldClassName())
|
||||
return InlineCodegenUtil.buildClassReaderByInternalName(state, regenerationInfo.oldClassName)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user