K2: take receiver parameters into account while computing JVM descriptor

#KT-72790 Fixed
diff --git a/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/SignatureUtils.kt b/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/SignatureUtils.kt
index 58e04e6..9795180 100644
--- a/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/SignatureUtils.kt
+++ b/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/SignatureUtils.kt
@@ -7,6 +7,7 @@
 
 import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
 import org.jetbrains.kotlin.fir.containingClassLookupTag
+import org.jetbrains.kotlin.fir.declarations.FirDeclaration
 import org.jetbrains.kotlin.fir.declarations.FirFunction
 import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
 import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
@@ -45,9 +46,8 @@
         }
     }
 
-    append("(")
-    for (parameter in valueParameters) {
-        typeConversion(parameter.returnTypeRef)?.let { coneType ->
+    fun appendTypeRef(parameter: FirDeclaration, typeRef: FirTypeRef) {
+        typeConversion(typeRef)?.let { coneType ->
             try {
                 appendConeType(coneType, typeConversion, mutableSetOf())
             } catch (e: ConcurrentModificationException) {
@@ -67,6 +67,17 @@
             }
         }
     }
+
+    append("(")
+    for (parameter in contextParameters) {
+        appendTypeRef(parameter, parameter.returnTypeRef)
+    }
+    receiverParameter?.let {
+        appendTypeRef(it, it.typeRef)
+    }
+    for (parameter in valueParameters) {
+        appendTypeRef(parameter, parameter.returnTypeRef)
+    }
     append(")")
 
     if (includeReturnType) {