Fix problem with several runtimes configured
This commit is contained in:
@@ -34,6 +34,7 @@ import org.jetbrains.jet.analyzer.ModuleInfo
|
||||
import org.jetbrains.jet.analyzer.ModuleContent
|
||||
import org.jetbrains.jet.di.InjectorForLazyResolveWithJava
|
||||
import org.jetbrains.jet.lang.resolve.CodeAnalyzerInitializer
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
|
||||
public class JvmResolverForModule(
|
||||
override val lazyResolveSession: ResolveSession,
|
||||
@@ -47,6 +48,7 @@ public class JvmPlatformParameters(
|
||||
|
||||
public object JvmAnalyzerFacade : AnalyzerFacade<JvmResolverForModule, JvmPlatformParameters> {
|
||||
override fun <M : ModuleInfo> createResolverForModule(
|
||||
moduleInfo: M,
|
||||
project: Project,
|
||||
globalContext: GlobalContext,
|
||||
moduleDescriptor: ModuleDescriptorImpl,
|
||||
@@ -56,7 +58,7 @@ public object JvmAnalyzerFacade : AnalyzerFacade<JvmResolverForModule, JvmPlatfo
|
||||
): JvmResolverForModule {
|
||||
val (syntheticFiles, moduleContentScope) = moduleContent
|
||||
val declarationProviderFactory = DeclarationProviderFactoryService.createDeclarationProviderFactory(
|
||||
project, globalContext.storageManager, syntheticFiles, moduleContentScope
|
||||
project, globalContext.storageManager, syntheticFiles, if (moduleInfo.isLibrary) GlobalSearchScope.EMPTY_SCOPE else moduleContentScope
|
||||
)
|
||||
|
||||
val moduleClassResolver = ModuleClassResolverImpl { javaClass ->
|
||||
|
||||
@@ -83,6 +83,8 @@ public data class ModuleContent(
|
||||
public trait PlatformAnalysisParameters
|
||||
|
||||
public trait ModuleInfo {
|
||||
public val isLibrary: Boolean
|
||||
get() = false
|
||||
public val name: Name
|
||||
public fun dependencies(): List<ModuleInfo>
|
||||
public fun friends(): Collection<ModuleInfo> = listOf()
|
||||
@@ -170,7 +172,7 @@ public trait AnalyzerFacade<A : ResolverForModule, in P : PlatformAnalysisParame
|
||||
module ->
|
||||
val descriptor = resolverForProject.descriptorForModule(module)
|
||||
val resolverForModule = createResolverForModule(
|
||||
project, globalContext, descriptor, modulesContent(module), platformParameters, resolverForProject
|
||||
module, project, globalContext, descriptor, modulesContent(module), platformParameters, resolverForProject
|
||||
)
|
||||
assert(descriptor.isInitialized, "ModuleDescriptorImpl#initialize() should be called in createResolverForModule")
|
||||
resolverForProject.resolverByModuleDescriptor[descriptor] = resolverForModule
|
||||
@@ -182,6 +184,7 @@ public trait AnalyzerFacade<A : ResolverForModule, in P : PlatformAnalysisParame
|
||||
}
|
||||
|
||||
protected fun <M : ModuleInfo> createResolverForModule(
|
||||
moduleInfo: M,
|
||||
project: Project,
|
||||
globalContext: GlobalContext,
|
||||
moduleDescriptor: ModuleDescriptorImpl,
|
||||
|
||||
@@ -136,6 +136,9 @@ public data class LibraryInfo(val project: Project, val library: Library) : Idea
|
||||
|
||||
override fun contentScope() = LibraryWithoutSourceScope(project, library)
|
||||
|
||||
override val isLibrary: Boolean
|
||||
get() = true
|
||||
|
||||
override fun dependencies(): List<IdeaModuleInfo> {
|
||||
val result = LinkedHashSet<IdeaModuleInfo>()
|
||||
result.add(this)
|
||||
@@ -156,6 +159,9 @@ private data class LibrarySourceInfo(val project: Project, val library: Library)
|
||||
|
||||
override fun contentScope() = GlobalSearchScope.EMPTY_SCOPE
|
||||
|
||||
override val isLibrary: Boolean
|
||||
get() = true
|
||||
|
||||
override fun dependencies(): List<IdeaModuleInfo> {
|
||||
return listOf(this) + LibraryInfo(project, library).dependencies()
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ public class JsResolverForModule(
|
||||
public object JsAnalyzerFacade : AnalyzerFacade<JsResolverForModule, PlatformAnalysisParameters> {
|
||||
|
||||
override fun <M : ModuleInfo> createResolverForModule(
|
||||
moduleInfo: M,
|
||||
project: Project,
|
||||
globalContext: GlobalContext,
|
||||
moduleDescriptor: ModuleDescriptorImpl,
|
||||
|
||||
Reference in New Issue
Block a user