diff --git a/compiler/fir/analysis-tests/testData/resolve/references/referenceToExtension.fir.txt b/compiler/fir/analysis-tests/testData/resolve/references/referenceToExtension.fir.txt index 22176c0501c..f1516bbb091 100644 --- a/compiler/fir/analysis-tests/testData/resolve/references/referenceToExtension.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/references/referenceToExtension.fir.txt @@ -36,7 +36,7 @@ FILE: referenceToExtension.kt public final fun test_1(): R|kotlin/Unit| { lval memberValRef: R|kotlin/reflect/KProperty1, GenericTest.A>| = Q|GenericTest.B|::R|SubstitutionOverride|>| - lval memberFunRef: R|@ExtensionFunctionType kotlin/reflect/KFunction1, GenericTest.A>| = Q|GenericTest.B|::R|SubstitutionOverride|>| + lval memberFunRef: R|kotlin/reflect/KFunction1, GenericTest.A>| = Q|GenericTest.B|::R|SubstitutionOverride|>| } public final fun test_2(): R|kotlin/Unit| { @@ -87,7 +87,7 @@ FILE: referenceToExtension.kt public final fun test_2(): R|kotlin/Unit| { lval memberValRef: R|kotlin/reflect/KProperty1| = Q|NoGenericTest.B|::R|/NoGenericTest.B.memberVal| - lval memberFunRef: R|@ExtensionFunctionType kotlin/reflect/KFunction1| = Q|NoGenericTest.B|::R|/NoGenericTest.B.memberFun| + lval memberFunRef: R|kotlin/reflect/KFunction1| = Q|NoGenericTest.B|::R|/NoGenericTest.B.memberFun| } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt index c8f72872f68..27c600cdc3e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt @@ -112,6 +112,9 @@ private fun buildReflectionType( ) val parameters = mutableListOf() + if (fir.receiverTypeRef == null && receiverType != null) { + parameters += receiverType + } val returnType = callableReferenceAdaptation?.let { parameters += it.argumentTypes @@ -128,7 +131,7 @@ private fun buildReflectionType( callableReferenceAdaptation?.suspendConversionStrategy == SuspendConversionStrategy.SUSPEND_CONVERSION return createFunctionalType( parameters, - receiverType = receiverType, + receiverType = receiverType.takeIf { fir.receiverTypeRef != null }, rawReturnType = returnType, isKFunctionType = true, isSuspend = isSuspend