Remove PackagePartProvider from ResolverForProjectImpl
To be able to move it to JVM-specific modules, and to provide a replacement for common module analysis
This commit is contained in:
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
|
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
|
||||||
|
|
||||||
class JvmPlatformParameters(
|
class JvmPlatformParameters(
|
||||||
|
val packagePartProviderFactory: (ModuleContent<*>) -> PackagePartProvider,
|
||||||
val moduleByJavaClass: (JavaClass) -> ModuleInfo?
|
val moduleByJavaClass: (JavaClass) -> ModuleInfo?
|
||||||
) : PlatformAnalysisParameters
|
) : PlatformAnalysisParameters
|
||||||
|
|
||||||
@@ -52,8 +53,7 @@ object JvmAnalyzerFacade : ResolverForModuleFactory() {
|
|||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
targetPlatformVersion: TargetPlatformVersion,
|
targetPlatformVersion: TargetPlatformVersion
|
||||||
packagePartProvider: PackagePartProvider
|
|
||||||
): ResolverForModule {
|
): ResolverForModule {
|
||||||
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
|
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
|
||||||
val project = moduleContext.project
|
val project = moduleContext.project
|
||||||
@@ -86,6 +86,7 @@ object JvmAnalyzerFacade : ResolverForModuleFactory() {
|
|||||||
val trace = CodeAnalyzerInitializer.getInstance(project).createTrace()
|
val trace = CodeAnalyzerInitializer.getInstance(project).createTrace()
|
||||||
|
|
||||||
val lookupTracker = LookupTracker.DO_NOTHING
|
val lookupTracker = LookupTracker.DO_NOTHING
|
||||||
|
val packagePartProvider = (platformParameters as JvmPlatformParameters).packagePartProviderFactory(moduleContent)
|
||||||
val container = createContainerForLazyResolveWithJava(
|
val container = createContainerForLazyResolveWithJava(
|
||||||
moduleContext,
|
moduleContext,
|
||||||
trace,
|
trace,
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import org.jetbrains.kotlin.context.withModule
|
|||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDependencies
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDependencies
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -89,11 +88,10 @@ class ResolverForProjectImpl<M : ModuleInfo>(
|
|||||||
private val modulePlatforms: (M) -> MultiTargetPlatform?,
|
private val modulePlatforms: (M) -> MultiTargetPlatform?,
|
||||||
private val moduleLanguageSettingsProvider: LanguageSettingsProvider,
|
private val moduleLanguageSettingsProvider: LanguageSettingsProvider,
|
||||||
private val resolverForModuleFactoryByPlatform: (TargetPlatform?) -> ResolverForModuleFactory,
|
private val resolverForModuleFactoryByPlatform: (TargetPlatform?) -> ResolverForModuleFactory,
|
||||||
private val platformParameters: PlatformAnalysisParameters,
|
private val platformParameters: (TargetPlatform) -> PlatformAnalysisParameters,
|
||||||
private val targetEnvironment: TargetEnvironment = CompilerEnvironment,
|
private val targetEnvironment: TargetEnvironment = CompilerEnvironment,
|
||||||
override val builtIns: KotlinBuiltIns = DefaultBuiltIns.Instance,
|
override val builtIns: KotlinBuiltIns = DefaultBuiltIns.Instance,
|
||||||
private val delegateResolver: ResolverForProject<M> = EmptyResolverForProject(),
|
private val delegateResolver: ResolverForProject<M> = EmptyResolverForProject(),
|
||||||
private val packagePartProviderFactory: (ModuleContent<M>) -> PackagePartProvider = { _ -> PackagePartProvider.Empty },
|
|
||||||
private val firstDependency: M? = null,
|
private val firstDependency: M? = null,
|
||||||
private val packageOracleFactory: PackageOracleFactory = PackageOracleFactory.OptimisticFactory,
|
private val packageOracleFactory: PackageOracleFactory = PackageOracleFactory.OptimisticFactory,
|
||||||
private val invalidateOnOOCB: Boolean = true
|
private val invalidateOnOOCB: Boolean = true
|
||||||
@@ -176,7 +174,6 @@ class ResolverForProjectImpl<M : ModuleInfo>(
|
|||||||
ResolverForModuleComputationTracker.getInstance(projectContext.project)?.onResolverComputed(module)
|
ResolverForModuleComputationTracker.getInstance(projectContext.project)?.onResolverComputed(module)
|
||||||
|
|
||||||
val moduleContent = modulesContent(module)
|
val moduleContent = modulesContent(module)
|
||||||
val packagePartProvider = packagePartProviderFactory(moduleContent)
|
|
||||||
val resolverForModuleFactory = resolverForModuleFactoryByPlatform(module.platform)
|
val resolverForModuleFactory = resolverForModuleFactoryByPlatform(module.platform)
|
||||||
|
|
||||||
val languageVersionSettings = moduleLanguageSettingsProvider.getLanguageVersionSettings(module, projectContext.project)
|
val languageVersionSettings = moduleLanguageSettingsProvider.getLanguageVersionSettings(module, projectContext.project)
|
||||||
@@ -186,12 +183,11 @@ class ResolverForProjectImpl<M : ModuleInfo>(
|
|||||||
descriptor as ModuleDescriptorImpl,
|
descriptor as ModuleDescriptorImpl,
|
||||||
projectContext.withModule(descriptor),
|
projectContext.withModule(descriptor),
|
||||||
moduleContent,
|
moduleContent,
|
||||||
platformParameters,
|
platformParameters(resolverForModuleFactory.targetPlatform),
|
||||||
targetEnvironment,
|
targetEnvironment,
|
||||||
this@ResolverForProjectImpl,
|
this@ResolverForProjectImpl,
|
||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
targetPlatformVersion,
|
targetPlatformVersion
|
||||||
packagePartProvider
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -267,7 +263,9 @@ data class ModuleContent<out M : ModuleInfo>(
|
|||||||
val moduleContentScope: GlobalSearchScope
|
val moduleContentScope: GlobalSearchScope
|
||||||
)
|
)
|
||||||
|
|
||||||
interface PlatformAnalysisParameters
|
interface PlatformAnalysisParameters {
|
||||||
|
object Empty : PlatformAnalysisParameters
|
||||||
|
}
|
||||||
|
|
||||||
interface ModuleInfo {
|
interface ModuleInfo {
|
||||||
val name: Name
|
val name: Name
|
||||||
@@ -322,8 +320,7 @@ abstract class ResolverForModuleFactory {
|
|||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
targetPlatformVersion: TargetPlatformVersion,
|
targetPlatformVersion: TargetPlatformVersion
|
||||||
packagePartProvider: PackagePartProvider
|
|
||||||
): ResolverForModule
|
): ResolverForModule
|
||||||
|
|
||||||
abstract val targetPlatform: TargetPlatform
|
abstract val targetPlatform: TargetPlatform
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
|
|||||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
|
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragmentProvider
|
import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragmentProvider
|
||||||
|
|
||||||
|
class CommonAnalysisParameters(
|
||||||
|
val packagePartProviderFactory: (ModuleContent<*>) -> PackagePartProvider
|
||||||
|
) : PlatformAnalysisParameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A facade that is used to analyze common (platform-independent) modules in multi-platform projects.
|
* A facade that is used to analyze common (platform-independent) modules in multi-platform projects.
|
||||||
* See [TargetPlatform.Common]
|
* See [TargetPlatform.Common]
|
||||||
@@ -87,8 +91,7 @@ object CommonAnalyzerFacade : ResolverForModuleFactory() {
|
|||||||
override fun getTargetPlatform(moduleInfo: ModuleInfo) = TargetPlatformVersion.NoVersion
|
override fun getTargetPlatform(moduleInfo: ModuleInfo) = TargetPlatformVersion.NoVersion
|
||||||
},
|
},
|
||||||
resolverForModuleFactoryByPlatform = { CommonAnalyzerFacade },
|
resolverForModuleFactoryByPlatform = { CommonAnalyzerFacade },
|
||||||
platformParameters = object : PlatformAnalysisParameters {},
|
platformParameters = { _ -> CommonAnalysisParameters(packagePartProviderFactory) }
|
||||||
packagePartProviderFactory = packagePartProviderFactory
|
|
||||||
)
|
)
|
||||||
|
|
||||||
val moduleDescriptor = resolver.descriptorForModule(moduleInfo)
|
val moduleDescriptor = resolver.descriptorForModule(moduleInfo)
|
||||||
@@ -107,8 +110,7 @@ object CommonAnalyzerFacade : ResolverForModuleFactory() {
|
|||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
targetPlatformVersion: TargetPlatformVersion,
|
targetPlatformVersion: TargetPlatformVersion
|
||||||
packagePartProvider: PackagePartProvider
|
|
||||||
): ResolverForModule {
|
): ResolverForModule {
|
||||||
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
|
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
|
||||||
val project = moduleContext.project
|
val project = moduleContext.project
|
||||||
@@ -118,6 +120,7 @@ object CommonAnalyzerFacade : ResolverForModuleFactory() {
|
|||||||
moduleInfo
|
moduleInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val packagePartProvider = (platformParameters as CommonAnalysisParameters).packagePartProviderFactory(moduleContent)
|
||||||
val trace = CodeAnalyzerInitializer.getInstance(project).createTrace()
|
val trace = CodeAnalyzerInitializer.getInstance(project).createTrace()
|
||||||
val container = createContainerToResolveCommonCode(
|
val container = createContainerToResolveCommonCode(
|
||||||
moduleContext, trace, declarationProviderFactory, moduleContentScope, targetEnvironment, packagePartProvider,
|
moduleContext, trace, declarationProviderFactory, moduleContentScope, targetEnvironment, packagePartProvider,
|
||||||
|
|||||||
+7
-1
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
|
|||||||
import org.jetbrains.kotlin.analyzer.ResolverForProjectImpl
|
import org.jetbrains.kotlin.analyzer.ResolverForProjectImpl
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.ProjectContext
|
import org.jetbrains.kotlin.context.ProjectContext
|
||||||
|
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
||||||
@@ -44,7 +45,12 @@ fun createResolveSessionForFiles(
|
|||||||
modulePlatforms = { JvmPlatform.multiTargetPlatform },
|
modulePlatforms = { JvmPlatform.multiTargetPlatform },
|
||||||
moduleLanguageSettingsProvider = LanguageSettingsProvider.Default,
|
moduleLanguageSettingsProvider = LanguageSettingsProvider.Default,
|
||||||
resolverForModuleFactoryByPlatform = { JvmAnalyzerFacade },
|
resolverForModuleFactoryByPlatform = { JvmAnalyzerFacade },
|
||||||
platformParameters = JvmPlatformParameters { testModule }
|
platformParameters = { _ ->
|
||||||
|
JvmPlatformParameters(
|
||||||
|
packagePartProviderFactory = { PackagePartProvider.Empty },
|
||||||
|
moduleByJavaClass = { testModule }
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
return resolverForProject.resolverForModule(testModule).componentProvider.get<ResolveSession>()
|
return resolverForProject.resolverForModule(testModule).componentProvider.get<ResolveSession>()
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-4
@@ -71,10 +71,14 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() {
|
|||||||
modulePlatforms = { JvmPlatform.multiTargetPlatform },
|
modulePlatforms = { JvmPlatform.multiTargetPlatform },
|
||||||
moduleLanguageSettingsProvider = LanguageSettingsProvider.Default,
|
moduleLanguageSettingsProvider = LanguageSettingsProvider.Default,
|
||||||
resolverForModuleFactoryByPlatform = { JvmAnalyzerFacade },
|
resolverForModuleFactoryByPlatform = { JvmAnalyzerFacade },
|
||||||
platformParameters = JvmPlatformParameters {
|
platformParameters = { _ ->
|
||||||
javaClass ->
|
JvmPlatformParameters(
|
||||||
val moduleName = javaClass.name.asString().toLowerCase().first().toString()
|
packagePartProviderFactory = { PackagePartProvider.Empty },
|
||||||
modules.first { it._name == moduleName }
|
moduleByJavaClass = { javaClass ->
|
||||||
|
val moduleName = javaClass.name.asString().toLowerCase().first().toString()
|
||||||
|
modules.first { it._name == moduleName }
|
||||||
|
}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
builtIns = builtIns
|
builtIns = builtIns
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|||||||
import org.jetbrains.kotlin.config.TargetPlatformVersion
|
import org.jetbrains.kotlin.config.TargetPlatformVersion
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.ModuleContext
|
import org.jetbrains.kotlin.context.ModuleContext
|
||||||
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
|
||||||
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.kotlin.frontend.di.createContainerForLazyResolve
|
import org.jetbrains.kotlin.frontend.di.createContainerForLazyResolve
|
||||||
@@ -38,7 +37,6 @@ import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
|
|||||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||||
|
|
||||||
object JsAnalyzerFacade : ResolverForModuleFactory() {
|
object JsAnalyzerFacade : ResolverForModuleFactory() {
|
||||||
|
|
||||||
override fun <M : ModuleInfo> createResolverForModule(
|
override fun <M : ModuleInfo> createResolverForModule(
|
||||||
moduleDescriptor: ModuleDescriptorImpl,
|
moduleDescriptor: ModuleDescriptorImpl,
|
||||||
moduleContext: ModuleContext,
|
moduleContext: ModuleContext,
|
||||||
@@ -47,8 +45,7 @@ object JsAnalyzerFacade : ResolverForModuleFactory() {
|
|||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
targetPlatformVersion: TargetPlatformVersion,
|
targetPlatformVersion: TargetPlatformVersion
|
||||||
packagePartProvider: PackagePartProvider
|
|
||||||
): ResolverForModule {
|
): ResolverForModule {
|
||||||
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
|
val (moduleInfo, syntheticFiles, moduleContentScope) = moduleContent
|
||||||
val project = moduleContext.project
|
val project = moduleContext.project
|
||||||
|
|||||||
+21
-6
@@ -24,6 +24,7 @@ import com.intellij.psi.util.CachedValuesManager
|
|||||||
import com.intellij.psi.util.PsiModificationTracker
|
import com.intellij.psi.util.PsiModificationTracker
|
||||||
import com.intellij.util.containers.SLRUCache
|
import com.intellij.util.containers.SLRUCache
|
||||||
import org.jetbrains.kotlin.analyzer.*
|
import org.jetbrains.kotlin.analyzer.*
|
||||||
|
import org.jetbrains.kotlin.analyzer.common.CommonAnalysisParameters
|
||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
|
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
|
||||||
@@ -41,7 +42,9 @@ import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl
|
|||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.resolve.CompositeBindingContext
|
import org.jetbrains.kotlin.resolve.CompositeBindingContext
|
||||||
|
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
||||||
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult
|
||||||
|
|
||||||
internal class ProjectResolutionFacade(
|
internal class ProjectResolutionFacade(
|
||||||
@@ -116,10 +119,17 @@ internal class ProjectResolutionFacade(
|
|||||||
ModuleContent(module, syntheticFilesByModule[module] ?: listOf(), module.contentScope())
|
ModuleContent(module, syntheticFilesByModule[module] ?: listOf(), module.contentScope())
|
||||||
}
|
}
|
||||||
|
|
||||||
val jvmPlatformParameters = JvmPlatformParameters { javaClass: JavaClass ->
|
val jvmPlatformParameters = JvmPlatformParameters(
|
||||||
val psiClass = (javaClass as JavaClassImpl).psi
|
packagePartProviderFactory = { IDEPackagePartProvider(it.moduleContentScope) },
|
||||||
psiClass.getNullableModuleInfo()
|
moduleByJavaClass = { javaClass: JavaClass ->
|
||||||
}
|
val psiClass = (javaClass as JavaClassImpl).psi
|
||||||
|
psiClass.getNullableModuleInfo()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
val commonPlatformParameters = CommonAnalysisParameters(
|
||||||
|
packagePartProviderFactory = { IDEPackagePartProvider(it.moduleContentScope) }
|
||||||
|
)
|
||||||
|
|
||||||
val resolverForProject = ResolverForProjectImpl(
|
val resolverForProject = ResolverForProjectImpl(
|
||||||
resolverDebugName,
|
resolverDebugName,
|
||||||
@@ -132,11 +142,16 @@ internal class ProjectResolutionFacade(
|
|||||||
val platform = modulePlatform ?: settings.platform
|
val platform = modulePlatform ?: settings.platform
|
||||||
IdePlatformSupport.facades[platform] ?: throw UnsupportedOperationException("Unsupported platform $platform")
|
IdePlatformSupport.facades[platform] ?: throw UnsupportedOperationException("Unsupported platform $platform")
|
||||||
},
|
},
|
||||||
platformParameters = jvmPlatformParameters,
|
platformParameters = { platform ->
|
||||||
|
when (platform) {
|
||||||
|
is JvmPlatform -> jvmPlatformParameters
|
||||||
|
is TargetPlatform.Common -> commonPlatformParameters
|
||||||
|
else -> PlatformAnalysisParameters.Empty
|
||||||
|
}
|
||||||
|
},
|
||||||
targetEnvironment = IdeaEnvironment,
|
targetEnvironment = IdeaEnvironment,
|
||||||
builtIns = builtIns,
|
builtIns = builtIns,
|
||||||
delegateResolver = delegateResolverForProject,
|
delegateResolver = delegateResolverForProject,
|
||||||
packagePartProviderFactory = { moduleContent -> IDEPackagePartProvider(moduleContent.moduleContentScope) },
|
|
||||||
firstDependency = settings.sdk?.let { SdkInfo(project, it) },
|
firstDependency = settings.sdk?.let { SdkInfo(project, it) },
|
||||||
packageOracleFactory = ServiceManager.getService(project, IdePackageOracleFactory::class.java),
|
packageOracleFactory = ServiceManager.getService(project, IdePackageOracleFactory::class.java),
|
||||||
invalidateOnOOCB = invalidateOnOOCB
|
invalidateOnOOCB = invalidateOnOOCB
|
||||||
|
|||||||
Reference in New Issue
Block a user