Use separate constraint position during call substitution as part of inferring postponed type variables

^KT-47052 Fixed
^KT-47082 Fixed
This commit is contained in:
Victor Petukhov
2021-06-02 12:16:22 +03:00
parent 7a2ecc58d4
commit 124a14c8df
17 changed files with 314 additions and 81 deletions
@@ -23,6 +23,12 @@ abstract class InjectedAnotherStubTypeConstraintPosition<T>(private val builderI
override fun toString(): String = "Injected from $builderInferenceLambdaOfInjectedStubType builder inference call"
}
abstract class BuilderInferenceSubstitutionConstraintPosition<L, I>(private val builderInferenceLambda: L, val initialConstraint: I) :
ConstraintPosition(), OnlyInputTypeConstraintPosition {
override fun toString(): String = "Incorporated builder inference constraint $initialConstraint " +
"into $builderInferenceLambda call"
}
abstract class ExpectedTypeConstraintPosition<T>(val topLevelCall: T) : ConstraintPosition(), OnlyInputTypeConstraintPosition {
override fun toString(): String = "ExpectedType for call $topLevelCall"
}