Skip to content

Commit 3821224

Browse files
committed
Use LanguageVersionSettings from project instead of LanguageVersionSettingsImpl.DEFAULT for sdk and library resolver.
General effect will be the following: - all member scopes for libraries and JDK will be constructed with -language-version/-api-version specified in project settings - for modules with another (not like in project settings) -api-version or -language-version we will have not correct member scope -- for example we will see typealiases from such libraries. #KT-15979 Fixed (cherry picked from commit 0001865)
1 parent ac4be88 commit 3821224

File tree

5 files changed

+10
-9
lines changed

5 files changed

+10
-9
lines changed

compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/JvmAnalyzerFacade.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ object JvmAnalyzerFacade : AnalyzerFacade<JvmPlatformParameters>() {
9999
targetEnvironment,
100100
LookupTracker.DO_NOTHING,
101101
packagePartProvider,
102-
languageSettingsProvider.getLanguageVersionSettings(moduleInfo),
102+
languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project),
103103
useBuiltInsProvider = false, // TODO: load built-ins from module dependencies in IDE
104104
useLazyResolve = true,
105105
compilerConfiguration = compilerConfiguration

compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,12 @@ private class DelegatingPackageFragmentProvider(
259259
}
260260

261261
interface LanguageSettingsProvider {
262-
fun getLanguageVersionSettings(moduleInfo: ModuleInfo): LanguageVersionSettings
262+
fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings
263263

264264
fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware
265265

266266
object Default : LanguageSettingsProvider {
267-
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo) = LanguageVersionSettingsImpl.DEFAULT
267+
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project) = LanguageVersionSettingsImpl.DEFAULT
268268

269269
override fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware = DescriptionAware.NoVersion
270270
}

idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/BuiltInsCache.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
2424
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
2525
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
2626
import org.jetbrains.kotlin.config.LanguageFeature
27-
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
2827
import org.jetbrains.kotlin.context.GlobalContextImpl
2928
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
29+
import org.jetbrains.kotlin.idea.project.languageVersionSettings
3030
import org.jetbrains.kotlin.js.resolve.JsPlatform
3131
import org.jetbrains.kotlin.platform.JvmBuiltIns
3232
import org.jetbrains.kotlin.resolve.TargetPlatform
@@ -52,7 +52,7 @@ class BuiltInsCache private constructor(
5252
}
5353

5454
fun getBuiltIns(moduleInfo: ModuleInfo): KotlinBuiltIns {
55-
val languageFeatureSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo)
55+
val languageFeatureSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project)
5656
return cache.get(languageFeatureSettings.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers))
5757
}
5858

@@ -74,7 +74,7 @@ class BuiltInsCache private constructor(
7474
val builtInsCache = BuiltInsCache(project, platform, sdk, sdkModuleDescriptor, sdkContext)
7575

7676
if (sdkBuiltIns is JvmBuiltIns) {
77-
val isAdditionalBuiltInsFeatureSupported = LanguageVersionSettingsImpl.DEFAULT.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers)
77+
val isAdditionalBuiltInsFeatureSupported = project.languageVersionSettings.supportsFeature(LanguageFeature.AdditionalBuiltInsMembers)
7878
sdkBuiltIns.initialize(
7979
sdkModuleDescriptor!!, // sdk is not null for JvmBuiltIns because of calculateBuiltIns
8080
isAdditionalBuiltInsFeatureSupported)

idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/JsAnalyzerFacade.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
6161
BindingTraceContext(),
6262
JsPlatform,
6363
targetEnvironment,
64-
LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo)
64+
LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project)
6565
)
6666
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider
6767

idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.jetbrains.kotlin.idea.compiler
1818

19+
import com.intellij.openapi.project.Project
1920
import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider
2021
import org.jetbrains.kotlin.analyzer.ModuleInfo
2122
import org.jetbrains.kotlin.config.LanguageVersionSettings
@@ -26,8 +27,8 @@ import org.jetbrains.kotlin.idea.project.targetPlatform
2627
import org.jetbrains.kotlin.utils.DescriptionAware
2728

2829
class LanguageVersionSettingsProviderImpl : LanguageSettingsProvider {
29-
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo): LanguageVersionSettings {
30-
return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: LanguageVersionSettingsImpl.DEFAULT
30+
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings {
31+
return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: project.languageVersionSettings
3132
}
3233

3334
override fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware {

0 commit comments

Comments
 (0)