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