diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt index 5e551b146ed..4c7a24a22bc 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt @@ -352,12 +352,6 @@ abstract class CommonCompilerArguments : CommonToolArguments() { ) var explicitApi: String by FreezableVar(ExplicitApiMode.DISABLED.state) - @Argument( - value = "-Xdeserialize-fake-overrides", - description = "Fallback to deserializing fake overrides" - ) - var deserializeFakeOverrides: Boolean by FreezableVar(false) - @Argument( value = "-Xinference-compatibility", description = "Enable compatibility changes for generic type inference algorithm" diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt index e457826ed7c..7bc1c2c720f 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/arguments.kt @@ -27,7 +27,6 @@ fun CompilerConfiguration.setupCommonArguments( put(CommonConfigurationKeys.EXPECT_ACTUAL_LINKER, arguments.expectActualLinker) putIfNotNull(CLIConfigurationKeys.INTELLIJ_PLUGIN_ROOT, arguments.intellijPluginRoot) put(CommonConfigurationKeys.REPORT_OUTPUT_FILES, arguments.reportOutputFiles) - put(CommonConfigurationKeys.DESERIALIZE_FAKE_OVERRIDES, arguments.deserializeFakeOverrides) val metadataVersionString = arguments.metadataVersion if (metadataVersionString != null) { diff --git a/compiler/config/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt b/compiler/config/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt index f407fd00e9b..a26f51a3eae 100644 --- a/compiler/config/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt +++ b/compiler/config/src/org/jetbrains/kotlin/config/CommonConfigurationKeys.kt @@ -48,9 +48,6 @@ object CommonConfigurationKeys { @JvmField val EXPECT_ACTUAL_LINKER = CompilerConfigurationKey.create("Experimental expext/actual linker") - @JvmField - val DESERIALIZE_FAKE_OVERRIDES = CompilerConfigurationKey.create("Deserialize fake overrides") - @JvmField val USE_FIR_EXTENDED_CHECKERS = CompilerConfigurationKey.create("fir extended checkers") } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt index 4c7f5d02b45..293d7d843bc 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/FakeOverrides.kt @@ -67,11 +67,6 @@ object FakeOverrideControl { // If set to true: all fake overrides go to klib serialized IR. // If set to false: eligible fake overrides are not serialized. val serializeFakeOverrides: Boolean = true - - // If set to true: fake overrides are deserialized from klib serialized IR. - // If set to false: eligible fake overrides are constructed within IR linker. - // This is the default in the absence of -Xdeserialize-fake-overrides flag. - val deserializeFakeOverrides: Boolean = false } class FakeOverrideBuilder( diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt index c7fd5035352..edd7f0a7b5d 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt @@ -114,7 +114,6 @@ abstract class IrFileDeserializer( val builtIns: IrBuiltIns, val symbolTable: SymbolTable, protected var deserializeBodies: Boolean, - private val deserializeFakeOverrides: Boolean, private val fakeOverrideBuilder: FakeOverrideBuilder, private val allowErrorNodes: Boolean ) { @@ -1468,7 +1467,6 @@ abstract class IrFileDeserializer( // Depending on deserialization strategy we either deserialize public api fake overrides // or reconstruct them after IR linker completes. private fun isSkippableFakeOverride(proto: ProtoDeclaration, parent: IrClass): Boolean { - if (deserializeFakeOverrides) return false if (!platformFakeOverrideClassFilter.needToConstructFakeOverrides(parent)) return false val symbol = when (proto.declaratorCase!!) { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt index 69e2ee3ce8e..b717736fe8f 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KotlinIrLinker.kt @@ -52,8 +52,7 @@ abstract class KotlinIrLinker( val logger: LoggingContext, val builtIns: IrBuiltIns, val symbolTable: SymbolTable, - private val exportedDependencies: List, - private val deserializeFakeOverrides: Boolean + private val exportedDependencies: List ) : IrDeserializer, FileLocalAwareLinker { // Kotlin-MPP related data. Consider some refactoring @@ -173,7 +172,6 @@ abstract class KotlinIrLinker( fileIndex, !strategy.needBodies, strategy.inlineBodies, - deserializeFakeOverrides, moduleDeserializer, allowErrorNodes ).apply { @@ -236,7 +234,6 @@ abstract class KotlinIrLinker( private val fileIndex: Int, onlyHeaders: Boolean, inlineBodies: Boolean, - deserializeFakeOverrides: Boolean, private val moduleDeserializer: IrModuleDeserializer, allowErrorNodes: Boolean ) : @@ -245,7 +242,6 @@ abstract class KotlinIrLinker( builtIns, symbolTable, !onlyHeaders, - deserializeFakeOverrides, fakeOverrideBuilder, allowErrorNodes ) diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt index 966fce3cbad..901b5126122 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt @@ -150,7 +150,6 @@ fun generateKLib( irBuiltIns.functionFactory = functionFactory val expectDescriptorToSymbol = mutableMapOf() - val deserializeFakeOverrides = configuration.getBoolean(CommonConfigurationKeys.DESERIALIZE_FAKE_OVERRIDES) val feContext = psi2IrContext.run { JsIrLinker.JsFePluginContext(moduleDescriptor, bindingContext, symbolTable, typeTranslator, irBuiltIns) } @@ -161,8 +160,7 @@ fun generateKLib( psi2IrContext.symbolTable, functionFactory, feContext, - serializedIrFiles?.let { ICData(it, errorPolicy.allowErrors) }, - deserializeFakeOverrides + serializedIrFiles?.let { ICData(it, errorPolicy.allowErrors) } ) sortDependencies(allDependencies.getFullList(), depsDescriptors.descriptors).map { @@ -227,7 +225,6 @@ fun loadIr( irFactory: IrFactory, ): IrModuleInfo { val depsDescriptors = ModulesStructure(project, mainModule, analyzer, configuration, allDependencies, friendDependencies) - val deserializeFakeOverrides = configuration.getBoolean(CommonConfigurationKeys.DESERIALIZE_FAKE_OVERRIDES) val errorPolicy = configuration.get(JSConfigurationKeys.ERROR_TOLERANCE_POLICY) ?: ErrorTolerancePolicy.DEFAULT when (mainModule) { @@ -240,7 +237,7 @@ fun loadIr( val feContext = psi2IrContext.run { JsIrLinker.JsFePluginContext(moduleDescriptor, bindingContext, symbolTable, typeTranslator, irBuiltIns) } - val irLinker = JsIrLinker(psi2IrContext.moduleDescriptor, emptyLoggingContext, irBuiltIns, symbolTable, functionFactory, feContext, null, deserializeFakeOverrides) + val irLinker = JsIrLinker(psi2IrContext.moduleDescriptor, emptyLoggingContext, irBuiltIns, symbolTable, functionFactory, feContext, null) val deserializedModuleFragments = sortDependencies(allDependencies.getFullList(), depsDescriptors.descriptors).map { irLinker.deserializeIrModuleHeader(depsDescriptors.getModuleDescriptor(it), it) } @@ -277,7 +274,7 @@ fun loadIr( val irBuiltIns = IrBuiltIns(moduleDescriptor.builtIns, typeTranslator, symbolTable) val functionFactory = IrFunctionFactory(irBuiltIns, symbolTable) val irLinker = - JsIrLinker(null, emptyLoggingContext, irBuiltIns, symbolTable, functionFactory, null, null, deserializeFakeOverrides) + JsIrLinker(null, emptyLoggingContext, irBuiltIns, symbolTable, functionFactory, null, null) val deserializedModuleFragments = sortDependencies(allDependencies.getFullList(), depsDescriptors.descriptors).map { val strategy = diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt index 916668a80c4..7f6d5de7264 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt @@ -27,9 +27,8 @@ class JsIrLinker( private val currentModule: ModuleDescriptor?, logger: LoggingContext, builtIns: IrBuiltIns, symbolTable: SymbolTable, override val functionalInterfaceFactory: IrAbstractFunctionFactory, override val translationPluginContext: TranslationPluginContext?, - private val icData: ICData? = null, - deserializeFakeOverrides: Boolean = FakeOverrideControl.deserializeFakeOverrides -) : KotlinIrLinker(currentModule, logger, builtIns, symbolTable, emptyList(), deserializeFakeOverrides) { + private val icData: ICData? = null +) : KotlinIrLinker(currentModule, logger, builtIns, symbolTable, emptyList()) { override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, IdSignatureSerializer(JsManglerIr), builtIns) diff --git a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt index df6fcdc22e6..af689618e92 100644 --- a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt +++ b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/serialization/JvmIrLinker.kt @@ -41,9 +41,8 @@ class JvmIrLinker( override val functionalInterfaceFactory: IrAbstractFunctionFactory, override val translationPluginContext: TranslationPluginContext?, private val stubGenerator: DeclarationStubGenerator, - private val manglerDesc: JvmManglerDesc, - deserializeFakeOverrides: Boolean = FakeOverrideControl.deserializeFakeOverrides -) : KotlinIrLinker(currentModule, logger, builtIns, symbolTable, emptyList(), deserializeFakeOverrides) { + private val manglerDesc: JvmManglerDesc +) : KotlinIrLinker(currentModule, logger, builtIns, symbolTable, emptyList()) { override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, IdSignatureSerializer(JvmManglerIr), builtIns) diff --git a/compiler/testData/cli/js/jsExtraHelp.out b/compiler/testData/cli/js/jsExtraHelp.out index 5dba5d832be..5bdb1b8e1cc 100644 --- a/compiler/testData/cli/js/jsExtraHelp.out +++ b/compiler/testData/cli/js/jsExtraHelp.out @@ -30,7 +30,6 @@ where advanced options include: Should be a subset of sources passed as free arguments -Xcoroutines={enable|warn|error} Enable coroutines or report warnings or errors on declarations and use sites of 'suspend' modifier - -Xdeserialize-fake-overrides Fallback to deserializing fake overrides -Xdisable-default-scripting-plugin Do not enable scripting plugin by default -Xdisable-phases Disable backend phases diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index ab4de7d4146..7d7fdcff310 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -123,7 +123,6 @@ where advanced options include: Should be a subset of sources passed as free arguments -Xcoroutines={enable|warn|error} Enable coroutines or report warnings or errors on declarations and use sites of 'suspend' modifier - -Xdeserialize-fake-overrides Fallback to deserializing fake overrides -Xdisable-default-scripting-plugin Do not enable scripting plugin by default -Xdisable-phases Disable backend phases