diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index be41155ff7b..c51751faf2a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -875,19 +875,20 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform transformedLHS?.let { callableReferenceAccess.replaceExplicitReceiver(transformedLHS) } - if (data !is ResolutionMode.ContextDependent /* ContextDependentDelegate is Ok here */) { - val resolvedReference = + return when (data) { + is ResolutionMode.ContextDependent -> { + context.storeCallableReferenceContext(callableReferenceAccess) + callableReferenceAccess + } + + else -> { components.syntheticCallGenerator.resolveCallableReferenceWithSyntheticOuterCall( callableReferenceAccess, data.expectedType, resolutionContext, ) ?: callableReferenceAccess - dataFlowAnalyzer.exitCallableReference(resolvedReference) - return resolvedReference + } + }.also { + dataFlowAnalyzer.exitCallableReference(it) } - - context.storeCallableReferenceContext(callableReferenceAccess) - - dataFlowAnalyzer.exitCallableReference(callableReferenceAccess) - return callableReferenceAccess } override fun transformGetClassCall(getClassCall: FirGetClassCall, data: ResolutionMode): FirStatement {