[FIR/NI] Refactor type variable gathering from lambda types

Motivation:
- drop getArguments from type context as a duplicate of getArgumentList
- reduce the number of collection allocations in getAllDeeplyRelatedTypeVariables

Additional minor improvements, test data fixes
This commit is contained in:
Pavel Kirpichenkov
2020-10-05 19:31:52 +03:00
parent ef44077cb7
commit 39a87435ee
14 changed files with 77 additions and 56 deletions
@@ -63,7 +63,7 @@ class ClassicConstraintSystemUtilContext(
return FixVariableConstraintPositionImpl(variable, atom) as FixVariableConstraintPosition<T>
}
override fun extractParameterTypesFromDeclaration(declaration: PostponedAtomWithRevisableExpectedType): List<KotlinTypeMarker?>? {
override fun extractLambdaParameterTypesFromDeclaration(declaration: PostponedAtomWithRevisableExpectedType): List<KotlinTypeMarker?>? {
require(declaration is ResolvedAtom)
return when (val atom = declaration.atom) {
is FunctionExpression -> {
@@ -20,10 +20,8 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs
class KotlinConstraintSystemCompleter(
private val resultTypeResolver: ResultTypeResolver,
val variableFixationFinder: VariableFixationFinder,
private val ctx: ConstraintSystemUtilContext,
private val postponedArgumentInputTypesResolver: PostponedArgumentInputTypesResolver,
) {
private val postponedArgumentInputTypesResolver = PostponedArgumentInputTypesResolver(resultTypeResolver, variableFixationFinder, ctx)
fun runCompletion(
c: ConstraintSystemCompletionContext,
completionMode: ConstraintSystemCompletionMode,