[NI] Disable SAM-conversions for Kotlin functions by default

#KT-30661 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2019-04-12 16:19:39 +03:00
parent c6f29cbf38
commit 705a8a2234
11 changed files with 76 additions and 20 deletions
@@ -305,7 +305,6 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
if (newInference) {
put(LanguageFeature.NewInference, LanguageFeature.State.ENABLED)
put(LanguageFeature.SamConversionForKotlinFunctions, LanguageFeature.State.ENABLED)
}
if (legacySmartCastAfterTry) {
@@ -343,22 +342,13 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
private fun HashMap<LanguageFeature, LanguageFeature.State>.configureLanguageFeaturesFromInternalArgs(collector: MessageCollector) {
val featuresThatForcePreReleaseBinaries = mutableListOf<LanguageFeature>()
var samConversionsExplicitlyPassed = false
for ((feature, state) in internalArguments.filterIsInstance<ManualLanguageFeatureSetting>()) {
if (feature == LanguageFeature.SamConversionForKotlinFunctions) {
samConversionsExplicitlyPassed = true
}
put(feature, state)
if (state == LanguageFeature.State.ENABLED && feature.forcesPreReleaseBinariesIfEnabled()) {
featuresThatForcePreReleaseBinaries += feature
}
}
if (!samConversionsExplicitlyPassed && this[LanguageFeature.NewInference] == LanguageFeature.State.ENABLED) {
put(LanguageFeature.SamConversionForKotlinFunctions, LanguageFeature.State.ENABLED)
}
if (featuresThatForcePreReleaseBinaries.isNotEmpty()) {
collector.report(
CompilerMessageSeverity.STRONG_WARNING,