Pass LanguageSettingsProvider to AnalyzerFacade explicitly
This way is more flexible for example for tests, where configuring the service implementation may be tricky (it's usually done in KotlinCoreEnvironment in production code)
This commit is contained in:
@@ -52,6 +52,7 @@ object JvmAnalyzerFacade : AnalyzerFacade<JvmPlatformParameters>() {
|
|||||||
platformParameters: JvmPlatformParameters,
|
platformParameters: JvmPlatformParameters,
|
||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
|
languageSettingsProvider: LanguageSettingsProvider,
|
||||||
packagePartProvider: PackagePartProvider
|
packagePartProvider: PackagePartProvider
|
||||||
): ResolverForModule {
|
): ResolverForModule {
|
||||||
val (syntheticFiles, moduleContentScope) = moduleContent
|
val (syntheticFiles, moduleContentScope) = moduleContent
|
||||||
@@ -80,7 +81,6 @@ object JvmAnalyzerFacade : AnalyzerFacade<JvmPlatformParameters>() {
|
|||||||
resolverForModule.componentProvider.get<JavaDescriptorResolver>()
|
resolverForModule.componentProvider.get<JavaDescriptorResolver>()
|
||||||
}
|
}
|
||||||
|
|
||||||
val languageSettingsProvider = LanguageSettingsProvider.getInstance(project)
|
|
||||||
val jvmTarget = languageSettingsProvider.getTargetPlatform(moduleInfo) as? JvmTarget ?: JvmTarget.JVM_1_6
|
val jvmTarget = languageSettingsProvider.getTargetPlatform(moduleInfo) as? JvmTarget ?: JvmTarget.JVM_1_6
|
||||||
val languageVersionSettings = languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
|
val languageVersionSettings = languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
|
||||||
|
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ abstract class AnalyzerFacade<in P : PlatformAnalysisParameters> {
|
|||||||
analyzerFacade: (M) -> AnalyzerFacade<P>,
|
analyzerFacade: (M) -> AnalyzerFacade<P>,
|
||||||
modulesContent: (M) -> ModuleContent,
|
modulesContent: (M) -> ModuleContent,
|
||||||
platformParameters: P,
|
platformParameters: P,
|
||||||
|
languageSettingsProvider: LanguageSettingsProvider = LanguageSettingsProvider.Default,
|
||||||
targetEnvironment: TargetEnvironment = CompilerEnvironment,
|
targetEnvironment: TargetEnvironment = CompilerEnvironment,
|
||||||
builtIns: KotlinBuiltIns = DefaultBuiltIns.Instance,
|
builtIns: KotlinBuiltIns = DefaultBuiltIns.Instance,
|
||||||
delegateResolver: ResolverForProject<M> = EmptyResolverForProject(),
|
delegateResolver: ResolverForProject<M> = EmptyResolverForProject(),
|
||||||
@@ -220,7 +221,7 @@ abstract class AnalyzerFacade<in P : PlatformAnalysisParameters> {
|
|||||||
|
|
||||||
analyzerFacade(module).createResolverForModule(
|
analyzerFacade(module).createResolverForModule(
|
||||||
module, descriptor, projectContext.withModule(descriptor), modulesContent(module),
|
module, descriptor, projectContext.withModule(descriptor), modulesContent(module),
|
||||||
platformParameters, targetEnvironment, resolverForProject,
|
platformParameters, targetEnvironment, resolverForProject, languageSettingsProvider,
|
||||||
packagePartProviderFactory(module, content)
|
packagePartProviderFactory(module, content)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -243,6 +244,7 @@ abstract class AnalyzerFacade<in P : PlatformAnalysisParameters> {
|
|||||||
platformParameters: P,
|
platformParameters: P,
|
||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
|
languageSettingsProvider: LanguageSettingsProvider,
|
||||||
packagePartProvider: PackagePartProvider
|
packagePartProvider: PackagePartProvider
|
||||||
): ResolverForModule
|
): ResolverForModule
|
||||||
|
|
||||||
@@ -301,10 +303,6 @@ interface LanguageSettingsProvider {
|
|||||||
|
|
||||||
override fun getTargetPlatform(moduleInfo: ModuleInfo): TargetPlatformVersion = TargetPlatformVersion.NoVersion
|
override fun getTargetPlatform(moduleInfo: ModuleInfo): TargetPlatformVersion = TargetPlatformVersion.NoVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
|
||||||
fun getInstance(project: Project) = ServiceManager.getService(project, LanguageSettingsProvider::class.java) ?: Default
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ResolverForModuleComputationTracker {
|
interface ResolverForModuleComputationTracker {
|
||||||
@@ -314,4 +312,4 @@ interface ResolverForModuleComputationTracker {
|
|||||||
companion object {
|
companion object {
|
||||||
fun getInstance(project: Project): ResolverForModuleComputationTracker? = ServiceManager.getService(project, ResolverForModuleComputationTracker::class.java) ?: null
|
fun getInstance(project: Project): ResolverForModuleComputationTracker? = ServiceManager.getService(project, ResolverForModuleComputationTracker::class.java) ?: null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.analyzer.common
|
package org.jetbrains.kotlin.analyzer.common
|
||||||
|
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.analyzer.*
|
import org.jetbrains.kotlin.analyzer.*
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
@@ -69,11 +70,16 @@ object DefaultAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
|||||||
): AnalysisResult {
|
): AnalysisResult {
|
||||||
val moduleInfo = SourceModuleInfo(moduleName, capabilities, dependOnBuiltIns)
|
val moduleInfo = SourceModuleInfo(moduleName, capabilities, dependOnBuiltIns)
|
||||||
val project = files.firstOrNull()?.project ?: throw AssertionError("No files to analyze")
|
val project = files.firstOrNull()?.project ?: throw AssertionError("No files to analyze")
|
||||||
|
@Suppress("NAME_SHADOWING")
|
||||||
val resolver = setupResolverForProject(
|
val resolver = setupResolverForProject(
|
||||||
"sources for metadata serializer",
|
"sources for metadata serializer",
|
||||||
ProjectContext(project), listOf(moduleInfo), { DefaultAnalyzerFacade },
|
ProjectContext(project), listOf(moduleInfo), { DefaultAnalyzerFacade },
|
||||||
{ ModuleContent(files, GlobalSearchScope.allScope(project)) },
|
{ ModuleContent(files, GlobalSearchScope.allScope(project)) },
|
||||||
object : PlatformAnalysisParameters {},
|
object : PlatformAnalysisParameters {},
|
||||||
|
object : LanguageSettingsProvider {
|
||||||
|
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project) = languageVersionSettings
|
||||||
|
override fun getTargetPlatform(moduleInfo: ModuleInfo) = TargetPlatformVersion.NoVersion
|
||||||
|
},
|
||||||
packagePartProviderFactory = packagePartProviderFactory,
|
packagePartProviderFactory = packagePartProviderFactory,
|
||||||
modulePlatforms = { MultiTargetPlatform.Common }
|
modulePlatforms = { MultiTargetPlatform.Common }
|
||||||
)
|
)
|
||||||
@@ -94,6 +100,7 @@ object DefaultAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
|||||||
platformParameters: PlatformAnalysisParameters,
|
platformParameters: PlatformAnalysisParameters,
|
||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
|
languageSettingsProvider: LanguageSettingsProvider,
|
||||||
packagePartProvider: PackagePartProvider
|
packagePartProvider: PackagePartProvider
|
||||||
): ResolverForModule {
|
): ResolverForModule {
|
||||||
val (syntheticFiles, moduleContentScope) = moduleContent
|
val (syntheticFiles, moduleContentScope) = moduleContent
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
|||||||
platformParameters: PlatformAnalysisParameters,
|
platformParameters: PlatformAnalysisParameters,
|
||||||
targetEnvironment: TargetEnvironment,
|
targetEnvironment: TargetEnvironment,
|
||||||
resolverForProject: ResolverForProject<M>,
|
resolverForProject: ResolverForProject<M>,
|
||||||
|
languageSettingsProvider: LanguageSettingsProvider,
|
||||||
packagePartProvider: PackagePartProvider
|
packagePartProvider: PackagePartProvider
|
||||||
): ResolverForModule {
|
): ResolverForModule {
|
||||||
val (syntheticFiles, moduleContentScope) = moduleContent
|
val (syntheticFiles, moduleContentScope) = moduleContent
|
||||||
@@ -58,8 +59,6 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
|||||||
moduleInfo
|
moduleInfo
|
||||||
)
|
)
|
||||||
|
|
||||||
val languageVersionSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project)
|
|
||||||
|
|
||||||
val container = createContainerForLazyResolve(
|
val container = createContainerForLazyResolve(
|
||||||
moduleContext,
|
moduleContext,
|
||||||
declarationProviderFactory,
|
declarationProviderFactory,
|
||||||
@@ -67,7 +66,7 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
|||||||
JsPlatform,
|
JsPlatform,
|
||||||
TargetPlatformVersion.NoVersion,
|
TargetPlatformVersion.NoVersion,
|
||||||
targetEnvironment,
|
targetEnvironment,
|
||||||
languageVersionSettings
|
languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
|
||||||
)
|
)
|
||||||
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider
|
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.caches.resolve
|
package org.jetbrains.kotlin.idea.caches.resolve
|
||||||
|
|
||||||
import com.intellij.openapi.components.service
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.projectRoots.Sdk
|
import com.intellij.openapi.projectRoots.Sdk
|
||||||
@@ -30,7 +29,6 @@ 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.EmptyResolverForProject
|
import org.jetbrains.kotlin.analyzer.EmptyResolverForProject
|
||||||
import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
|
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
@@ -39,6 +37,7 @@ import org.jetbrains.kotlin.container.tryGetService
|
|||||||
import org.jetbrains.kotlin.context.GlobalContext
|
import org.jetbrains.kotlin.context.GlobalContext
|
||||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
||||||
|
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
||||||
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker
|
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker
|
||||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||||
import org.jetbrains.kotlin.idea.project.outOfBlockModificationCount
|
import org.jetbrains.kotlin.idea.project.outOfBlockModificationCount
|
||||||
@@ -171,7 +170,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun IdeaModuleInfo.supportsAdditionalBuiltInsMembers(): Boolean {
|
private fun IdeaModuleInfo.supportsAdditionalBuiltInsMembers(): Boolean {
|
||||||
return project.service<LanguageSettingsProvider>()
|
return IDELanguageSettingsProvider
|
||||||
.getLanguageVersionSettings(this, project)
|
.getLanguageVersionSettings(this, project)
|
||||||
.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers)
|
.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-1
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||||
import org.jetbrains.kotlin.context.withProject
|
import org.jetbrains.kotlin.context.withProject
|
||||||
|
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
||||||
import org.jetbrains.kotlin.idea.project.AnalyzerFacadeProvider
|
import org.jetbrains.kotlin.idea.project.AnalyzerFacadeProvider
|
||||||
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
||||||
import org.jetbrains.kotlin.js.resolve.JsPlatform
|
import org.jetbrains.kotlin.js.resolve.JsPlatform
|
||||||
@@ -77,7 +78,9 @@ fun createModuleResolverProvider(
|
|||||||
return AnalyzerFacade.setupResolverForProject(
|
return AnalyzerFacade.setupResolverForProject(
|
||||||
debugName, globalContext.withProject(project), modulesToCreateResolversFor,
|
debugName, globalContext.withProject(project), modulesToCreateResolversFor,
|
||||||
{ module -> AnalyzerFacadeProvider.getAnalyzerFacade(module.platform ?: analysisSettings.platform) },
|
{ module -> AnalyzerFacadeProvider.getAnalyzerFacade(module.platform ?: analysisSettings.platform) },
|
||||||
modulesContent, jvmPlatformParameters, IdeaEnvironment, builtIns,
|
modulesContent, jvmPlatformParameters,
|
||||||
|
IDELanguageSettingsProvider,
|
||||||
|
IdeaEnvironment, builtIns,
|
||||||
delegateResolver, { _, c -> IDEPackagePartProvider(c.moduleContentScope) },
|
delegateResolver, { _, c -> IDEPackagePartProvider(c.moduleContentScope) },
|
||||||
analysisSettings.sdk?.let { SdkInfo(project, it) },
|
analysisSettings.sdk?.let { SdkInfo(project, it) },
|
||||||
modulePlatforms = { module -> module.platform?.multiTargetPlatform },
|
modulePlatforms = { module -> module.platform?.multiTargetPlatform },
|
||||||
|
|||||||
+3
-3
@@ -21,7 +21,6 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.psi.search.EverythingGlobalScope
|
import com.intellij.psi.search.EverythingGlobalScope
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.psi.stubs.StubIndex
|
import com.intellij.psi.stubs.StubIndex
|
||||||
import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider
|
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightClassConstructionContext
|
import org.jetbrains.kotlin.asJava.builder.LightClassConstructionContext
|
||||||
import org.jetbrains.kotlin.config.JvmTarget
|
import org.jetbrains.kotlin.config.JvmTarget
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
@@ -38,6 +37,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.getModuleInfo
|
|||||||
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.lightClasses.IDELightClassConstructionContext.Mode.EXACT
|
import org.jetbrains.kotlin.idea.caches.resolve.lightClasses.IDELightClassConstructionContext.Mode.EXACT
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.lightClasses.IDELightClassConstructionContext.Mode.LIGHT
|
import org.jetbrains.kotlin.idea.caches.resolve.lightClasses.IDELightClassConstructionContext.Mode.LIGHT
|
||||||
|
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
||||||
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
||||||
import org.jetbrains.kotlin.idea.project.ResolveElementCache
|
import org.jetbrains.kotlin.idea.project.ResolveElementCache
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinOverridableInternalMembersShortNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinOverridableInternalMembersShortNameIndex
|
||||||
@@ -254,7 +254,7 @@ object IDELightClassContexts {
|
|||||||
|
|
||||||
val moduleInfo = files.first().getModuleInfo()
|
val moduleInfo = files.first().getModuleInfo()
|
||||||
val container = createContainer("LightClassStub", JvmPlatform) {
|
val container = createContainer("LightClassStub", JvmPlatform) {
|
||||||
val jvmTarget = LanguageSettingsProvider.getInstance(project).getTargetPlatform(moduleInfo) as? JvmTarget
|
val jvmTarget = IDELanguageSettingsProvider.getTargetPlatform(moduleInfo) as? JvmTarget
|
||||||
configureModule(
|
configureModule(
|
||||||
ModuleContext(moduleDescriptor, project), JvmPlatform,
|
ModuleContext(moduleDescriptor, project), JvmPlatform,
|
||||||
jvmTarget ?: JvmTarget.DEFAULT, trace
|
jvmTarget ?: JvmTarget.DEFAULT, trace
|
||||||
@@ -263,7 +263,7 @@ object IDELightClassContexts {
|
|||||||
useInstance(GlobalSearchScope.EMPTY_SCOPE)
|
useInstance(GlobalSearchScope.EMPTY_SCOPE)
|
||||||
useInstance(LookupTracker.DO_NOTHING)
|
useInstance(LookupTracker.DO_NOTHING)
|
||||||
useImpl<FileScopeProviderImpl>()
|
useImpl<FileScopeProviderImpl>()
|
||||||
useInstance(LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project))
|
useInstance(IDELanguageSettingsProvider.getLanguageVersionSettings(moduleInfo, project))
|
||||||
useInstance(FileBasedDeclarationProviderFactory(sm, files))
|
useInstance(FileBasedDeclarationProviderFactory(sm, files))
|
||||||
|
|
||||||
useImpl<AdHocAnnotationResolver>()
|
useImpl<AdHocAnnotationResolver>()
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings
|
|||||||
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.project.targetPlatform
|
import org.jetbrains.kotlin.idea.project.targetPlatform
|
||||||
|
|
||||||
class LanguageVersionSettingsProviderImpl : LanguageSettingsProvider {
|
object IDELanguageSettingsProvider : LanguageSettingsProvider {
|
||||||
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings {
|
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings {
|
||||||
return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: project.getLanguageVersionSettings()
|
return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: project.getLanguageVersionSettings()
|
||||||
}
|
}
|
||||||
@@ -20,11 +20,11 @@ import com.intellij.psi.PsiClass
|
|||||||
import com.intellij.psi.PsiModifier
|
import com.intellij.psi.PsiModifier
|
||||||
import com.intellij.psi.search.PsiShortNamesCache
|
import com.intellij.psi.search.PsiShortNamesCache
|
||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider
|
|
||||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult
|
||||||
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult.*
|
import org.jetbrains.kotlin.asJava.ImpreciseResolveResult.*
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.getNullableModuleInfo
|
import org.jetbrains.kotlin.idea.caches.resolve.getNullableModuleInfo
|
||||||
|
import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider
|
||||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasShortNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasShortNameIndex
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
@@ -235,7 +235,7 @@ class PsiBasedClassResolver @TestOnly constructor(private val targetClassFqName:
|
|||||||
|
|
||||||
private fun KtFile.getDefaultImports(): List<ImportPath> {
|
private fun KtFile.getDefaultImports(): List<ImportPath> {
|
||||||
val moduleInfo = getNullableModuleInfo() ?: return emptyList()
|
val moduleInfo = getNullableModuleInfo() ?: return emptyList()
|
||||||
val versionSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project)
|
val versionSettings = IDELanguageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
|
||||||
return TargetPlatformDetector.getPlatform(this).getDefaultImports(
|
return TargetPlatformDetector.getPlatform(this).getDefaultImports(
|
||||||
versionSettings.supportsFeature(LanguageFeature.DefaultImportOfPackageKotlinComparisons)
|
versionSettings.supportsFeature(LanguageFeature.DefaultImportOfPackageKotlinComparisons)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -340,9 +340,6 @@
|
|||||||
<projectService serviceInterface="org.jetbrains.kotlin.console.KotlinConsoleKeeper"
|
<projectService serviceInterface="org.jetbrains.kotlin.console.KotlinConsoleKeeper"
|
||||||
serviceImplementation="org.jetbrains.kotlin.console.KotlinConsoleKeeper"/>
|
serviceImplementation="org.jetbrains.kotlin.console.KotlinConsoleKeeper"/>
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.analyzer.LanguageSettingsProvider"
|
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.compiler.LanguageVersionSettingsProviderImpl"/>
|
|
||||||
|
|
||||||
<projectService serviceInterface="org.jetbrains.kotlin.asJava.classes.LightClassInheritanceHelper"
|
<projectService serviceInterface="org.jetbrains.kotlin.asJava.classes.LightClassInheritanceHelper"
|
||||||
serviceImplementation="org.jetbrains.kotlin.idea.caches.resolve.lightClasses.IdeLightClassInheritanceHelper"/>
|
serviceImplementation="org.jetbrains.kotlin.idea.caches.resolve.lightClasses.IdeLightClassInheritanceHelper"/>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user