From 770bbd8f6b320333a9004a2336eab3169046d4f0 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 19 Sep 2023 11:03:42 +0200 Subject: [PATCH] K2: drop state mutation from LambdaWithTypeVariableAsExpectedTypeAtom init block Related to KT-61933 --- .../kotlin/fir/resolve/inference/PostponedArguments.kt | 4 +++- .../jetbrains/kotlin/fir/resolve/inference/PostponedAtoms.kt | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedArguments.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedArguments.kt index 8ed284026e2..972b8578e48 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedArguments.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedArguments.kt @@ -42,7 +42,9 @@ fun Candidate.preprocessLambdaArgument( }?.type as ConeKotlinType? if (explicitTypeArgument == null || explicitTypeArgument.typeArguments.isNotEmpty()) { - return LambdaWithTypeVariableAsExpectedTypeAtom(argument, expectedType, this) + return LambdaWithTypeVariableAsExpectedTypeAtom(argument, expectedType, this).also { + this.postponedAtoms += it + } } } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedAtoms.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedAtoms.kt index 3f495fd1bf4..917f8678005 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedAtoms.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/PostponedAtoms.kt @@ -90,9 +90,6 @@ class LambdaWithTypeVariableAsExpectedTypeAtom( private val initialExpectedTypeType: ConeKotlinType, val candidateOfOuterCall: Candidate, ) : PostponedResolvedAtom(), LambdaWithTypeVariableAsExpectedTypeMarker { - init { - candidateOfOuterCall.postponedAtoms += this - } override var parameterTypesFromDeclaration: List? = null private set