diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt index 8c45cf0a20c..21d9e76a569 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.frontend.di.configureIncrementalCompilation import org.jetbrains.kotlin.frontend.di.configureModule import org.jetbrains.kotlin.frontend.di.configureStandardResolveComponents -import org.jetbrains.kotlin.idea.MainFunctionDetector import org.jetbrains.kotlin.incremental.components.ExpectActualTracker import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder @@ -127,7 +126,7 @@ fun StorageComponentContainer.configureJavaSpecificComponents( useInstance(languageVersionSettings.getFlag(JvmAnalysisFlags.javaTypeEnhancementState)) if (useBuiltInsProvider) { - useInstance((moduleContext.module.builtIns as JvmBuiltIns).settings) + useInstance((moduleContext.module.builtIns as JvmBuiltIns).customizer) useImpl() } useImpl() diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltIns.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltIns.kt index 5eabfdc18f7..987b33ae4ac 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltIns.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltIns.kt @@ -63,8 +63,8 @@ class JvmBuiltIns(storageManager: StorageManager, kind: Kind) : KotlinBuiltIns(s this.isAdditionalBuiltInsFeatureSupported = isAdditionalBuiltInsFeatureSupported } - val settings: JvmBuiltInsSettings by storageManager.createLazyValue { - JvmBuiltInsSettings( + val customizer: JvmBuiltInsCustomizer by storageManager.createLazyValue { + JvmBuiltInsCustomizer( builtInsModule, storageManager, { ownerModuleDescriptor.sure { "JvmBuiltins has not been initialized properly" } }, { @@ -83,9 +83,9 @@ class JvmBuiltIns(storageManager: StorageManager, kind: Kind) : KotlinBuiltIns(s } } - override fun getPlatformDependentDeclarationFilter(): PlatformDependentDeclarationFilter = settings + override fun getPlatformDependentDeclarationFilter(): PlatformDependentDeclarationFilter = customizer - override fun getAdditionalClassPartsProvider(): AdditionalClassPartsProvider = settings + override fun getAdditionalClassPartsProvider(): AdditionalClassPartsProvider = customizer override fun getClassDescriptorFactories() = super.getClassDescriptorFactories() + JvmBuiltInClassDescriptorFactory(storageManager, builtInsModule) diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsSettings.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsCustomizer.kt similarity index 98% rename from core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsSettings.kt rename to core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsCustomizer.kt index 736eb21bf7a..13d8b1998a5 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsSettings.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/builtins/jvm/JvmBuiltInsCustomizer.kt @@ -45,7 +45,9 @@ import org.jetbrains.kotlin.utils.DFS import org.jetbrains.kotlin.utils.SmartSet import java.util.* -open class JvmBuiltInsSettings( +// This class is worth splitting into two implementations of AdditionalClassPartsProvider and PlatformDependentDeclarationFilter +// But currently, they shares a piece of code and probably it's better to postpone it +class JvmBuiltInsCustomizer( private val moduleDescriptor: ModuleDescriptor, storageManager: StorageManager, deferredOwnerModuleDescriptor: () -> ModuleDescriptor, diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt index 70060296e77..46c75c46533 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/DeserializationComponentsForJava.kt @@ -53,8 +53,8 @@ class DeserializationComponentsForJava( storageManager, moduleDescriptor, configuration, classDataFinder, annotationAndConstantLoader, packageFragmentProvider, LocalClassifierTypeSettings.Default, errorReporter, lookupTracker, JavaFlexibleTypeDeserializer, emptyList(), notFoundClasses, contractDeserializer, - additionalClassPartsProvider = jvmBuiltIns?.settings ?: AdditionalClassPartsProvider.None, - platformDependentDeclarationFilter = jvmBuiltIns?.settings ?: PlatformDependentDeclarationFilter.NoPlatformDependent, + additionalClassPartsProvider = jvmBuiltIns?.customizer ?: AdditionalClassPartsProvider.None, + platformDependentDeclarationFilter = jvmBuiltIns?.customizer ?: PlatformDependentDeclarationFilter.NoPlatformDependent, extensionRegistryLite = JvmProtoBufUtil.EXTENSION_REGISTRY, kotlinTypeChecker = kotlinTypeChecker, samConversionResolver = SamConversionResolverImpl(storageManager, emptyList()) ) diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/descriptors/runtime/components/RuntimeModuleData.kt b/core/descriptors.runtime/src/org/jetbrains/kotlin/descriptors/runtime/components/RuntimeModuleData.kt index 2d976a2ede2..bcf70256ced 100644 --- a/core/descriptors.runtime/src/org/jetbrains/kotlin/descriptors/runtime/components/RuntimeModuleData.kt +++ b/core/descriptors.runtime/src/org/jetbrains/kotlin/descriptors/runtime/components/RuntimeModuleData.kt @@ -85,7 +85,7 @@ class RuntimeModuleData private constructor( // .kotlin_builtins files should be found by the same class loader that loaded stdlib classes val stdlibClassLoader = Unit::class.java.classLoader val builtinsProvider = JvmBuiltInsPackageFragmentProvider( - storageManager, ReflectKotlinClassFinder(stdlibClassLoader), module, notFoundClasses, builtIns.settings, builtIns.settings, + storageManager, ReflectKotlinClassFinder(stdlibClassLoader), module, notFoundClasses, builtIns.customizer, builtIns.customizer, DeserializationConfiguration.Default, NewKotlinTypeChecker.Default, SamConversionResolverImpl(storageManager, emptyList()) )