diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmAnalyzerFacade.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmAnalyzerFacade.kt index 998a4c4467a..34367bc1601 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmAnalyzerFacade.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmAnalyzerFacade.kt @@ -99,7 +99,7 @@ object JvmAnalyzerFacade : AnalyzerFacade() { targetEnvironment, LookupTracker.DO_NOTHING, packagePartProvider, - languageSettingsProvider.getLanguageVersionSettings(moduleInfo), + languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project), useBuiltInsProvider = false, // TODO: load built-ins from module dependencies in IDE useLazyResolve = true, compilerConfiguration = compilerConfiguration diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt index 0b8099b260e..f7df83ab895 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt @@ -259,12 +259,12 @@ private class DelegatingPackageFragmentProvider( } interface LanguageSettingsProvider { - fun getLanguageVersionSettings(moduleInfo: ModuleInfo): LanguageVersionSettings + fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware object Default : LanguageSettingsProvider { - override fun getLanguageVersionSettings(moduleInfo: ModuleInfo) = LanguageVersionSettingsImpl.DEFAULT + override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project) = LanguageVersionSettingsImpl.DEFAULT override fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware = DescriptionAware.NoVersion } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/BuiltInsCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/BuiltInsCache.kt index 05d8ad8131e..9c8eace0613 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/BuiltInsCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/BuiltInsCache.kt @@ -24,9 +24,9 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.config.LanguageFeature -import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl import org.jetbrains.kotlin.context.GlobalContextImpl import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.idea.project.languageVersionSettings import org.jetbrains.kotlin.js.resolve.JsPlatform import org.jetbrains.kotlin.platform.JvmBuiltIns import org.jetbrains.kotlin.resolve.TargetPlatform @@ -52,7 +52,7 @@ class BuiltInsCache private constructor( } fun getBuiltIns(moduleInfo: ModuleInfo): KotlinBuiltIns { - val languageFeatureSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo) + val languageFeatureSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project) return cache.get(languageFeatureSettings.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers)) } @@ -74,7 +74,7 @@ class BuiltInsCache private constructor( val builtInsCache = BuiltInsCache(project, platform, sdk, sdkModuleDescriptor, sdkContext) if (sdkBuiltIns is JvmBuiltIns) { - val isAdditionalBuiltInsFeatureSupported = LanguageVersionSettingsImpl.DEFAULT.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers) + val isAdditionalBuiltInsFeatureSupported = project.languageVersionSettings.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers) sdkBuiltIns.initialize( sdkModuleDescriptor!!, // sdk is not null for JvmBuiltIns because of calculateBuiltIns isAdditionalBuiltInsFeatureSupported) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt index 7e4ef4464f4..044bd22cc13 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt @@ -61,7 +61,7 @@ object JsAnalyzerFacade : AnalyzerFacade() { BindingTraceContext(), JsPlatform, targetEnvironment, - LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo) + LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project) ) var packageFragmentProvider = container.get().packageFragmentProvider diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt b/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt index 7c7f43712a4..b4e5f40fcff 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.compiler +import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.config.LanguageVersionSettings @@ -26,8 +27,8 @@ import org.jetbrains.kotlin.idea.project.targetPlatform import org.jetbrains.kotlin.utils.DescriptionAware class LanguageVersionSettingsProviderImpl : LanguageSettingsProvider { - override fun getLanguageVersionSettings(moduleInfo: ModuleInfo): LanguageVersionSettings { - return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: LanguageVersionSettingsImpl.DEFAULT + override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings { + return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: project.languageVersionSettings } override fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware {