Only create descriptors for candidates with lambda args

#KT-36247 fixed
This commit is contained in:
Ilya Chernikov
2020-02-03 17:25:55 +01:00
parent 6ed4229359
commit 2249c223fe
32 changed files with 69 additions and 373 deletions
@@ -158,7 +158,12 @@ class KotlinCallCompleter(
// this is needed at least for non-local return checker, because when we analyze lambda we should already bind descriptor for outer call
candidate?.resolvedCall?.let {
resolutionCallbacks.bindStubResolvedCallForCandidate(it)
val mayNeedDescriptor = it.argumentToCandidateParameter.keys.any { arg ->
arg is LambdaKotlinCallArgument
}
if (mayNeedDescriptor) {
resolutionCallbacks.bindStubResolvedCallForCandidate(it)
}
resolutionCallbacks.disableContractsIfNecessary(it)
}