From 756ff6cf43ea47811c2770c34bd54efee687cedd Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 20 Jan 2022 18:28:56 +0300 Subject: [PATCH] Minor performance improvements in tryToCompleteWithBuilderInference --- .../fir/resolve/inference/ConstraintSystemCompleter.kt | 5 +++-- .../inference/components/KotlinConstraintSystemCompleter.kt | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt index e316cf9f3ff..2750288b867 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt @@ -188,14 +188,15 @@ class ConstraintSystemCompleter(components: BodyResolveComponents, private val c // We assume useBuilderInferenceWithoutAnnotation = true for FIR + val builder = getBuilder() for (argument in lambdaArguments) { val notFixedInputTypeVariables = argument.inputTypes - .map { it.extractTypeVariables() }.flatten().filter { it !in fixedTypeVariables } + .flatMap { it.extractTypeVariables() }.filter { it !in fixedTypeVariables } if (notFixedInputTypeVariables.isEmpty()) continue for (variable in notFixedInputTypeVariables) { - getBuilder().markPostponedVariable(notFixedTypeVariables.getValue(variable).typeVariable) + builder.markPostponedVariable(notFixedTypeVariables.getValue(variable).typeVariable) } analyze(argument) diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/KotlinConstraintSystemCompleter.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/KotlinConstraintSystemCompleter.kt index ae0ad199d4c..408a44778ab 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/KotlinConstraintSystemCompleter.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/KotlinConstraintSystemCompleter.kt @@ -216,17 +216,18 @@ class KotlinConstraintSystemCompleter( val useBuilderInferenceWithoutAnnotation = languageVersionSettings.supportsFeature(LanguageFeature.UseBuilderInferenceWithoutAnnotation) + val builder = getBuilder() for (argument in lambdaArguments) { if (!argument.atom.hasBuilderInferenceAnnotation && !useBuilderInferenceWithoutAnnotation) continue val notFixedInputTypeVariables = argument.inputTypes - .map { it.extractTypeVariables() }.flatten().filter { it !in fixedTypeVariables } + .flatMap { it.extractTypeVariables() }.filter { it !in fixedTypeVariables } if (notFixedInputTypeVariables.isEmpty()) continue for (variable in notFixedInputTypeVariables) { - getBuilder().markPostponedVariable(notFixedTypeVariables.getValue(variable).typeVariable) + builder.markPostponedVariable(notFixedTypeVariables.getValue(variable).typeVariable) } analyze(argument)