Fix prematurely analyzing a lambda while fixing a type variable for another argument

^KT-35168 Fixed
This commit is contained in:
victor.petukhov
2019-11-28 15:56:59 +03:00
parent c4a115720e
commit e246c23a46
10 changed files with 37 additions and 8 deletions
@@ -206,7 +206,7 @@ class CoroutineInferenceSession(
val atomCompleter = createResolvedAtomCompleter(resultingSubstitutor, completedCall.context)
val resultCallAtom = completedCall.callResolutionResult.resultCallAtom
for (subResolvedAtom in resultCallAtom.subResolvedAtoms) {
resultCallAtom.subResolvedAtoms?.forEach { subResolvedAtom ->
atomCompleter.completeAll(subResolvedAtom)
}
atomCompleter.completeResolvedCall(resultCallAtom, completedCall.callResolutionResult.diagnostics)
@@ -139,7 +139,7 @@ class KotlinToResolvedCallTransformer(
)
if (!ErrorUtils.isError(candidate.candidateDescriptor)) {
for (subKtPrimitive in candidate.subResolvedAtoms) {
candidate.subResolvedAtoms?.forEach { subKtPrimitive ->
ktPrimitiveCompleter.completeAll(subKtPrimitive)
}
}
@@ -73,7 +73,7 @@ class ResolvedAtomCompleter(
}
fun completeAll(resolvedAtom: ResolvedAtom) {
for (subKtPrimitive in resolvedAtom.subResolvedAtoms) {
resolvedAtom.subResolvedAtoms?.forEach { subKtPrimitive ->
completeAll(subKtPrimitive)
}
complete(resolvedAtom)