Propagate 'CompilerConfiguration' to frontend checkers

This commit is contained in:
Mikhael Bogdanov
2017-01-17 10:52:41 +01:00
parent 9b1c258cdf
commit 7a27a9d51f
16 changed files with 74 additions and 29 deletions
@@ -61,7 +61,7 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
BindingTraceContext(),
JsPlatform,
targetEnvironment,
LanguageVersionSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo)
LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo)
)
var packageFragmentProvider = container.get<ResolveSession>().packageFragmentProvider
@@ -79,7 +79,7 @@ val Module.languageVersionSettings: LanguageVersionSettings
return LanguageVersionSettingsImpl(languageVersion, ApiVersion.createByLanguageVersion(apiVersion), extraLanguageFeatures)
}
private val Module.targetPlatform: TargetPlatformKind<*>?
val Module.targetPlatform: TargetPlatformKind<*>?
get() = KotlinFacetSettingsProvider.getInstance(project).getSettings(this).versionInfo.targetPlatformKind
private val Module.implementsCommonModule: Boolean
@@ -39,9 +39,9 @@ sealed class TargetPlatformKind<out Version : DescriptionAware>(
}
}
object JavaScript : TargetPlatformKind<NoVersion>(NoVersion, "JavaScript")
object JavaScript : TargetPlatformKind<DescriptionAware.NoVersion>(DescriptionAware.NoVersion, "JavaScript")
object Common : TargetPlatformKind<NoVersion>(NoVersion, "Common (experimental)")
object Common : TargetPlatformKind<DescriptionAware.NoVersion>(DescriptionAware.NoVersion, "Common (experimental)")
companion object {
@@ -49,10 +49,6 @@ sealed class TargetPlatformKind<out Version : DescriptionAware>(
}
}
object NoVersion : DescriptionAware {
override val description = ""
}
data class KotlinVersionInfo(
var languageLevel: LanguageVersion? = null,
var apiLevel: LanguageVersion? = null,
+1 -1
View File
@@ -305,7 +305,7 @@
<projectService serviceInterface="org.jetbrains.kotlin.console.KotlinConsoleKeeper"
serviceImplementation="org.jetbrains.kotlin.console.KotlinConsoleKeeper"/>
<projectService serviceInterface="org.jetbrains.kotlin.analyzer.LanguageVersionSettingsProvider"
<projectService serviceInterface="org.jetbrains.kotlin.analyzer.LanguageSettingsProvider"
serviceImplementation="org.jetbrains.kotlin.idea.compiler.LanguageVersionSettingsProviderImpl"/>
<projectService serviceInterface="org.jetbrains.kotlin.config.KotlinFacetSettingsProvider"
@@ -16,15 +16,21 @@
package org.jetbrains.kotlin.idea.compiler
import org.jetbrains.kotlin.analyzer.LanguageVersionSettingsProvider
import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.idea.caches.resolve.ModuleSourceInfo
import org.jetbrains.kotlin.idea.project.languageVersionSettings
import org.jetbrains.kotlin.idea.project.targetPlatform
import org.jetbrains.kotlin.utils.DescriptionAware
class LanguageVersionSettingsProviderImpl : LanguageVersionSettingsProvider {
class LanguageVersionSettingsProviderImpl : LanguageSettingsProvider {
override fun getLanguageVersionSettings(moduleInfo: ModuleInfo): LanguageVersionSettings {
return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: LanguageVersionSettingsImpl.DEFAULT
}
override fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware {
return (moduleInfo as? ModuleSourceInfo)?.module?.targetPlatform?.version ?: DescriptionAware.NoVersion
}
}