Probably fix issue with creating module descriptor for SDK twice

During creation and initialization of module descriptor for sdk
  in IdeaResolverForProject.BuiltInsCache.getOrCreateIfNeeded
  AbstractResolverForProject asks for sdk dependency for module
  descriptor for this sdk, so sometimes this module descriptor was
  created twice

#KT-42001 Fixed
EA-211562
This commit is contained in:
Dmitriy Novozhilov
2020-12-18 11:25:31 +03:00
parent 6296f6dc33
commit 92adccde47
4 changed files with 14 additions and 8 deletions
@@ -52,7 +52,7 @@ abstract class AbstractResolverForProject<M : ModuleInfo>(
assert(moduleInfoToResolvableInfo.values.toSet() == modules.toSet())
}
abstract fun sdkDependency(module: M): M?
abstract fun sdkDependency(module: M, ownerModuleDescriptor: ModuleDescriptorImpl?): M?
abstract fun modulesContent(module: M): ModuleContent<M>
abstract fun builtInsForModule(module: M): KotlinBuiltIns
abstract fun createResolverForModule(descriptor: ModuleDescriptor, moduleInfo: M): ResolverForModule
@@ -68,7 +68,7 @@ abstract class AbstractResolverForProject<M : ModuleInfo>(
LazyModuleDependencies(
projectContext.storageManager,
module,
sdkDependency(module),
sdkDependency(module, moduleDescriptor),
this
)
)
@@ -35,7 +35,7 @@ class ResolverForSingleModuleProject<M : ModuleInfo>(
EmptyResolverForProject(),
PackageOracleFactory.OptimisticFactory
) {
override fun sdkDependency(module: M): M? = sdkDependency
override fun sdkDependency(module: M, ownerModuleDescriptor: ModuleDescriptorImpl?): M? = sdkDependency
init {
knownDependencyModuleDescriptors.forEach { (module, descriptor) ->
@@ -61,4 +61,4 @@ class ResolverForSingleModuleProject<M : ModuleInfo>(
this,
languageVersionSettings
)
}
}