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
@@ -145,7 +145,7 @@ class KotlinConstraintSystemCompleter(
to.addIfNotNull(this.safeAs<PostponedResolvedAtom>()?.takeUnless { it.analyzed })
if (analyzed) {
subResolvedAtoms.forEach { it.process(to) }
subResolvedAtoms?.forEach { it.process(to) }
}
}
@@ -177,7 +177,7 @@ class KotlinConstraintSystemCompleter(
}
if (analyzed) {
subResolvedAtoms.forEach { it.process(to) }
subResolvedAtoms?.forEach { it.process(to) }
}
}
@@ -257,7 +257,7 @@ class KotlinConstraintSystemCompleter(
return this
}
subResolvedAtoms.forEach { subResolvedAtom ->
subResolvedAtoms?.forEach { subResolvedAtom ->
subResolvedAtom.check()?.let { result -> return@check result }
}
@@ -37,7 +37,7 @@ sealed class ResolvedAtom {
var analyzed: Boolean = false
private set
lateinit var subResolvedAtoms: List<ResolvedAtom>
var subResolvedAtoms: List<ResolvedAtom>? = null
private set
protected open fun setAnalyzedResults(subResolvedAtoms: List<ResolvedAtom>) {