diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt index ef0ff27bbf2..ee43caadf59 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallKind.kt @@ -8,6 +8,18 @@ package org.jetbrains.kotlin.fir.resolve.calls sealed class CallKind { abstract val resolutionSequence: List + /* + * Used for resolution of synthetic calls for `when` and `try` expression + * that are equal to `fun select(vararg values: K): K` + */ + object SyntheticSelect : CallKind() { + override val resolutionSequence: List = listOf( + MapArguments, + CreateFreshTypeVariableSubstitutorStage, + CheckArguments + ) + } + object Function : CallKind() { override val resolutionSequence: List = listOf( CheckVisibility, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt index 5071e654b8e..a00c869009a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt @@ -95,7 +95,7 @@ class FirSyntheticCallGenerator(private val transformer: FirBodyResolveTransform ) private fun generateCallInfo(arguments: List) = CallInfo( - callKind = CallKind.Function, + callKind = CallKind.SyntheticSelect, explicitReceiver = null, arguments = arguments, isSafeCall = false,