[IR] Fix compatibility mode
- pass corresponding flag to mangler - properly handle local declarations in field initializers - fix KT-48912
This commit is contained in:
committed by
TeamCityServer
parent
8f8c59e748
commit
ba759fb61b
+5
-5
@@ -37,9 +37,9 @@ object JvmIrMangler : IrBasedKotlinManglerImpl() {
|
||||
override fun IrDeclaration.isPlatformSpecificExported() = false
|
||||
}
|
||||
|
||||
private class JvmIrManglerComputer(builder: StringBuilder, mode: MangleMode) : IrMangleComputer(builder, mode) {
|
||||
private class JvmIrManglerComputer(builder: StringBuilder, mode: MangleMode, compatibleMode: Boolean) : IrMangleComputer(builder, mode, compatibleMode) {
|
||||
override fun copy(newMode: MangleMode): IrMangleComputer =
|
||||
JvmIrManglerComputer(builder, newMode)
|
||||
JvmIrManglerComputer(builder, newMode, compatibleMode)
|
||||
|
||||
override fun addReturnTypeSpecialCase(irFunction: IrFunction): Boolean =
|
||||
irFunction.isFromJava()
|
||||
@@ -53,8 +53,8 @@ object JvmIrMangler : IrBasedKotlinManglerImpl() {
|
||||
|
||||
override fun getExportChecker(compatibleMode: Boolean): KotlinExportChecker<IrDeclaration> = JvmIrExportChecker(compatibleMode)
|
||||
|
||||
override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer<IrDeclaration> =
|
||||
JvmIrManglerComputer(StringBuilder(256), mode)
|
||||
override fun getMangleComputer(mode: MangleMode, compatibleMode: Boolean): KotlinMangleComputer<IrDeclaration> =
|
||||
JvmIrManglerComputer(StringBuilder(256), mode, compatibleMode)
|
||||
}
|
||||
|
||||
class JvmDescriptorMangler(private val mainDetector: MainFunctionDetector?) : DescriptorBasedKotlinManglerImpl() {
|
||||
@@ -101,6 +101,6 @@ class JvmDescriptorMangler(private val mainDetector: MainFunctionDetector?) : De
|
||||
|
||||
override fun getExportChecker(compatibleMode: Boolean): KotlinExportChecker<DeclarationDescriptor> = ExportChecker
|
||||
|
||||
override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer<DeclarationDescriptor> =
|
||||
override fun getMangleComputer(mode: MangleMode, compatibleMode: Boolean): KotlinMangleComputer<DeclarationDescriptor> =
|
||||
JvmDescriptorManglerComputer(StringBuilder(256), mainDetector, mode)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user