Add ability to enable new inference in the platform

This commit is contained in:
Mikhail Zarechenskiy
2018-03-19 15:10:23 +03:00
parent 4070f13e26
commit 81ac3a4f2f
@@ -58,6 +58,10 @@ private val readDeserializedContractsArg: String by lazy {
CommonCompilerArguments::readDeserializedContracts.annotations.filterIsInstance<Argument>().single().value
}
private val newInferenceArg: String by lazy {
CommonCompilerArguments::newInference.annotations.filterIsInstance<Argument>().single().value
}
fun Module.getAndCacheLanguageLevelByDependencies(): LanguageVersion {
val facetSettings = KotlinFacetSettingsProvider.getInstance(project).getInitializedSettings(this)
val languageLevel = getLibraryLanguageLevel(this, null, facetSettings.targetPlatformKind)
@@ -190,6 +194,10 @@ private fun getExtraLanguageFeatures(
if (compilerSettings?.additionalArguments?.contains(readDeserializedContractsArg) == true) {
put(LanguageFeature.ReadDeserializedContracts, LanguageFeature.State.ENABLED)
}
if (compilerSettings?.additionalArguments?.contains(newInferenceArg) == true) {
put(LanguageFeature.NewInference, LanguageFeature.State.ENABLED)
}
}
}