From e91b378b7dc74a44a2ab2567dc5047030224d8c6 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Tue, 25 Aug 2020 10:03:52 +0300 Subject: [PATCH] Don't perform unnecessary SAM conversions #KT-41149 In Progress --- .../kotlin/resolve/calls/components/SamTypeConversions.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/SamTypeConversions.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/SamTypeConversions.kt index 7b0d60431a0..b67663d9f15 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/SamTypeConversions.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/components/SamTypeConversions.kt @@ -30,6 +30,7 @@ object SamTypeConversions : ParameterTypeConversion { if (generatingAdditionalSamCandidateIsEnabled) return true if (expectedParameterType.isNothing()) return true + if (expectedParameterType.isFunctionType) return true val samConversionOracle = callComponents.samConversionOracle if (!callComponents.languageVersionSettings.supportsFeature(LanguageFeature.SamConversionForKotlinFunctions)) { @@ -46,6 +47,8 @@ object SamTypeConversions : ParameterTypeConversion { return when (argument) { is SubKotlinCallArgument -> { val stableType = argument.receiver.stableType + if (stableType.isFunctionType) return true + hasNonAnalyzedLambdaAsReturnType(argument.callResult.subResolvedAtoms, stableType) } is SimpleKotlinCallArgument -> argument.receiver.stableType.isFunctionType