Move JvmBuiltIns initialization after container setup
It will be used in the further commits to initilize built-ins instance with components as arguments
This commit is contained in:
+6
-3
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.load.kotlin
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider
|
||||
import org.jetbrains.kotlin.platform.JvmBuiltIns
|
||||
import org.jetbrains.kotlin.serialization.deserialization.*
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
|
||||
@@ -37,14 +38,16 @@ class DeserializationComponentsForJava(
|
||||
val components: DeserializationComponents
|
||||
|
||||
init {
|
||||
val settings = JvmBuiltInsSettings(moduleDescriptor, storageManager, { moduleDescriptor })
|
||||
// currently built-ins may be not an instance of JvmBuiltIns only in case of built-ins serialization
|
||||
val jvmBuiltIns = moduleDescriptor.builtIns as? JvmBuiltIns
|
||||
components = DeserializationComponents(
|
||||
storageManager, moduleDescriptor, classDataFinder, annotationAndConstantLoader, packageFragmentProvider,
|
||||
LocalClassifierTypeSettings.Default,
|
||||
errorReporter, lookupTracker, JavaFlexibleTypeDeserializer, ClassDescriptorFactory.EMPTY,
|
||||
notFoundClasses,
|
||||
additionalClassPartsProvider = settings,
|
||||
platformDependentDeclarationFilter = settings
|
||||
additionalClassPartsProvider = jvmBuiltIns?.settings ?: AdditionalClassPartsProvider.None,
|
||||
platformDependentDeclarationFilter =
|
||||
jvmBuiltIns?.settings ?: PlatformDependentDeclarationFilter.NoPlatformDependent
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.platform
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmBuiltInsSettings
|
||||
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider
|
||||
import org.jetbrains.kotlin.serialization.deserialization.PlatformDependentDeclarationFilter
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
import org.jetbrains.kotlin.utils.sure
|
||||
@@ -28,12 +27,13 @@ class JvmBuiltIns(storageManager: StorageManager) : KotlinBuiltIns(storageManage
|
||||
// Module containing JDK classes or having them among dependencies
|
||||
private var ownerModuleDescriptor: ModuleDescriptor? = null
|
||||
|
||||
fun setOwnerModuleDescriptor(moduleDescriptor: ModuleDescriptor) {
|
||||
fun initialize(moduleDescriptor: ModuleDescriptor) {
|
||||
assert(ownerModuleDescriptor == null) { "JvmBuiltins repeated initialization" }
|
||||
this.ownerModuleDescriptor = moduleDescriptor
|
||||
}
|
||||
|
||||
private lateinit var settings: JvmBuiltInsSettings
|
||||
lateinit var settings: JvmBuiltInsSettings
|
||||
private set
|
||||
|
||||
// Here we know order in which KotlinBuiltIns constructor calls these methods
|
||||
override fun getPlatformDependentDeclarationFilter(): PlatformDependentDeclarationFilter {
|
||||
|
||||
Reference in New Issue
Block a user