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.*
|
import java.util.*
|
||||||
|
|
||||||
class AnonymousObjectRegenerationInfo internal constructor(
|
class AnonymousObjectRegenerationInfo internal constructor(
|
||||||
private val ownerInternalName: String,
|
override val oldClassName: String,
|
||||||
private val needReification: Boolean,
|
private val needReification: Boolean,
|
||||||
val lambdasToInline: Map<Int, LambdaInfo>,
|
val lambdasToInline: Map<Int, LambdaInfo>,
|
||||||
private val capturedOuterRegenerated: Boolean,
|
private val capturedOuterRegenerated: Boolean,
|
||||||
@@ -28,7 +28,7 @@ class AnonymousObjectRegenerationInfo internal constructor(
|
|||||||
private val isStaticOrigin: Boolean,
|
private val isStaticOrigin: Boolean,
|
||||||
private val nameGenerator: NameGenerator) : RegenerationInfo() {
|
private val nameGenerator: NameGenerator) : RegenerationInfo() {
|
||||||
|
|
||||||
private val newLambdaType: String by lazy {
|
override val newClassName: String by lazy {
|
||||||
nameGenerator.genLambdaClassName()
|
nameGenerator.genLambdaClassName()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,10 +49,6 @@ class AnonymousObjectRegenerationInfo internal constructor(
|
|||||||
HashMap<Int, LambdaInfo>(), false, alreadyRegenerated, null, isStaticOrigin, nameGenerator) {
|
HashMap<Int, LambdaInfo>(), false, alreadyRegenerated, null, isStaticOrigin, nameGenerator) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getOldClassName(): String {
|
|
||||||
return ownerInternalName
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun shouldRegenerate(sameModule: Boolean): Boolean {
|
override fun shouldRegenerate(sameModule: Boolean): Boolean {
|
||||||
return !alreadyRegenerated && (!lambdasToInline.isEmpty() || !sameModule || capturedOuterRegenerated || needReification)
|
return !alreadyRegenerated && (!lambdasToInline.isEmpty() || !sameModule || capturedOuterRegenerated || needReification)
|
||||||
}
|
}
|
||||||
@@ -62,8 +58,4 @@ class AnonymousObjectRegenerationInfo internal constructor(
|
|||||||
// because it can be local function from outer scope
|
// because it can be local function from outer scope
|
||||||
return !isStaticOrigin
|
return !isStaticOrigin
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getNewClassName(): String {
|
|
||||||
return newLambdaType
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -191,7 +191,6 @@ public class AnonymousObjectTransformer extends ObjectTransformer<AnonymousObjec
|
|||||||
|
|
||||||
classBuilder.done();
|
classBuilder.done();
|
||||||
|
|
||||||
regenerationInfo.setNewLambdaType(newLambdaType);
|
|
||||||
return transformationResult;
|
return transformationResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ abstract class ObjectTransformer<T : RegenerationInfo>(val regenerationInfo: T,
|
|||||||
protected fun createRemappingClassBuilderViaFactory(inliningContext: InliningContext): ClassBuilder {
|
protected fun createRemappingClassBuilderViaFactory(inliningContext: InliningContext): ClassBuilder {
|
||||||
val classBuilder = state.factory.newVisitor(
|
val classBuilder = state.factory.newVisitor(
|
||||||
JvmDeclarationOrigin.NO_ORIGIN,
|
JvmDeclarationOrigin.NO_ORIGIN,
|
||||||
Type.getObjectType(regenerationInfo.getNewClassName()),
|
Type.getObjectType(regenerationInfo.newClassName),
|
||||||
inliningContext.root.callElement.containingFile
|
inliningContext.root.callElement.containingFile
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ abstract class ObjectTransformer<T : RegenerationInfo>(val regenerationInfo: T,
|
|||||||
|
|
||||||
|
|
||||||
fun createClassReader(): ClassReader {
|
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 class RegenerationInfo() {
|
||||||
|
|
||||||
abstract fun getOldClassName(): String
|
abstract val oldClassName: String
|
||||||
|
|
||||||
abstract fun getNewClassName(): String
|
abstract val newClassName: String
|
||||||
|
|
||||||
abstract fun shouldRegenerate(sameModule: Boolean): Boolean
|
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 {
|
override val newClassName by lazy {
|
||||||
nameGenerator.genLambdaClassName() + oldName
|
nameGenerator.genLambdaClassName() + oldClassName.substringAfterLast("/")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldRegenerate(sameModule: Boolean): Boolean {
|
override fun shouldRegenerate(sameModule: Boolean): Boolean {
|
||||||
throw UnsupportedOperationException()
|
throw UnsupportedOperationException()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getOldClassName(): String {
|
|
||||||
return oldName
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getNewClassName(): String {
|
|
||||||
return newName
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun canRemoveAfterTransformation(): Boolean {
|
override fun canRemoveAfterTransformation(): Boolean {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user