Don't perform unnecessary SAM conversions
#KT-41149 In Progress
This commit is contained in:
+3
@@ -30,6 +30,7 @@ object SamTypeConversions : ParameterTypeConversion {
|
|||||||
|
|
||||||
if (generatingAdditionalSamCandidateIsEnabled) return true
|
if (generatingAdditionalSamCandidateIsEnabled) return true
|
||||||
if (expectedParameterType.isNothing()) return true
|
if (expectedParameterType.isNothing()) return true
|
||||||
|
if (expectedParameterType.isFunctionType) return true
|
||||||
|
|
||||||
val samConversionOracle = callComponents.samConversionOracle
|
val samConversionOracle = callComponents.samConversionOracle
|
||||||
if (!callComponents.languageVersionSettings.supportsFeature(LanguageFeature.SamConversionForKotlinFunctions)) {
|
if (!callComponents.languageVersionSettings.supportsFeature(LanguageFeature.SamConversionForKotlinFunctions)) {
|
||||||
@@ -46,6 +47,8 @@ object SamTypeConversions : ParameterTypeConversion {
|
|||||||
return when (argument) {
|
return when (argument) {
|
||||||
is SubKotlinCallArgument -> {
|
is SubKotlinCallArgument -> {
|
||||||
val stableType = argument.receiver.stableType
|
val stableType = argument.receiver.stableType
|
||||||
|
if (stableType.isFunctionType) return true
|
||||||
|
|
||||||
hasNonAnalyzedLambdaAsReturnType(argument.callResult.subResolvedAtoms, stableType)
|
hasNonAnalyzedLambdaAsReturnType(argument.callResult.subResolvedAtoms, stableType)
|
||||||
}
|
}
|
||||||
is SimpleKotlinCallArgument -> argument.receiver.stableType.isFunctionType
|
is SimpleKotlinCallArgument -> argument.receiver.stableType.isFunctionType
|
||||||
|
|||||||
Reference in New Issue
Block a user