JVM IR: rename mangler implementation classes

This commit is contained in:
Alexander Udalov
2021-04-23 13:06:22 +02:00
parent 1e16c7d8d4
commit 7a42f603f2
7 changed files with 26 additions and 40 deletions
@@ -40,10 +40,10 @@ class JvmIrLinker(
override val functionalInterfaceFactory: IrAbstractFunctionFactory,
override val translationPluginContext: TranslationPluginContext?,
private val stubGenerator: DeclarationStubGenerator,
private val manglerDesc: JvmManglerDesc
private val manglerDesc: JvmDescriptorMangler
) : KotlinIrLinker(currentModule, messageLogger, typeSystem.irBuiltIns, symbolTable, emptyList()) {
override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, JvmManglerIr, typeSystem)
override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, JvmIrMangler, typeSystem)
private val javaName = Name.identifier("java")
@@ -26,8 +26,7 @@ import org.jetbrains.kotlin.ir.util.isFromJava
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor
import org.jetbrains.kotlin.load.java.lazy.descriptors.isJavaField
abstract class AbstractJvmManglerIr : IrBasedKotlinManglerImpl() {
object JvmIrMangler : IrBasedKotlinManglerImpl() {
private class JvmIrExportChecker(compatibleMode: Boolean) : IrExportCheckerVisitor(compatibleMode) {
override fun IrDeclaration.isPlatformSpecificExported() = false
}
@@ -42,20 +41,12 @@ abstract class AbstractJvmManglerIr : IrBasedKotlinManglerImpl() {
override fun getExportChecker(compatibleMode: Boolean): KotlinExportChecker<IrDeclaration> = JvmIrExportChecker(compatibleMode)
override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer<IrDeclaration> {
return JvmIrManglerComputer(StringBuilder(256), mode)
}
override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer<IrDeclaration> =
JvmIrManglerComputer(StringBuilder(256), mode)
}
object JvmManglerIr : AbstractJvmManglerIr()
abstract class AbstractJvmDescriptorMangler(private val mainDetector: MainFunctionDetector?) : DescriptorBasedKotlinManglerImpl() {
companion object {
private val exportChecker = JvmDescriptorExportChecker()
}
private class JvmDescriptorExportChecker : DescriptorExportCheckerVisitor() {
class JvmDescriptorMangler(private val mainDetector: MainFunctionDetector?) : DescriptorBasedKotlinManglerImpl() {
private object ExportChecker : DescriptorExportCheckerVisitor() {
override fun DeclarationDescriptor.isPlatformSpecificExported() = false
}
@@ -69,13 +60,11 @@ abstract class AbstractJvmDescriptorMangler(private val mainDetector: MainFuncti
override fun copy(newMode: MangleMode): DescriptorMangleComputer = JvmDescriptorManglerComputer(builder, mainDetector, newMode)
private fun isMainFunction(descriptor: FunctionDescriptor): Boolean = mainDetector?.isMain(descriptor) ?: false
private fun isMainFunction(descriptor: FunctionDescriptor): Boolean =
mainDetector != null && mainDetector.isMain(descriptor)
override fun FunctionDescriptor.platformSpecificSuffix(): String? {
return if (isMainFunction(this)) {
return source.containingFile.name
} else null
}
override fun FunctionDescriptor.platformSpecificSuffix(): String? =
if (isMainFunction(this)) source.containingFile.name else null
override fun PropertyDescriptor.platformSpecificSuffix(): String? {
// Since LV 1.4 there is a feature PreferJavaFieldOverload which allows to have java and kotlin
@@ -91,11 +80,8 @@ abstract class AbstractJvmDescriptorMangler(private val mainDetector: MainFuncti
}
}
override fun getExportChecker(compatibleMode: Boolean): KotlinExportChecker<DeclarationDescriptor> = exportChecker
override fun getExportChecker(compatibleMode: Boolean): KotlinExportChecker<DeclarationDescriptor> = ExportChecker
override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer<DeclarationDescriptor> {
return JvmDescriptorManglerComputer(StringBuilder(256), mainDetector, mode)
}
override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer<DeclarationDescriptor> =
JvmDescriptorManglerComputer(StringBuilder(256), mainDetector, mode)
}
class JvmManglerDesc(mainDetector: MainFunctionDetector? = null) : AbstractJvmDescriptorMangler(mainDetector)