~ gradle
diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt
index 23edb33..3761495 100644
--- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt
+++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt
@@ -208,7 +208,7 @@
         }
     }
 
-    protected fun rememberClosure(parameterType: Type, index: Int, lambdaInfo: LambdaInfo) {
+    protected fun rememberClosure(parameterType: Type, lambdaInfo: LambdaInfo) {
         invocationParamBuilder.addNextValueParameter(parameterType, true, null).functionalArgument = lambdaInfo
     }
 
@@ -225,7 +225,7 @@
         }
     }
 
-    protected fun putArgumentToLocalVal(jvmKotlinType: JvmKotlinType, stackValue: StackValue, parameterIndex: Int, kind: ValueKind) {
+    protected fun putArgumentToLocalVal(jvmKotlinType: JvmKotlinType, stackValue: StackValue, kind: ValueKind) {
         if (kind === ValueKind.DEFAULT_MASK || kind === ValueKind.METHOD_HANDLE_IN_DEFAULT) {
             return processDefaultMaskOrMethodHandler(stackValue, kind)
         }
diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/PsiInlineCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/PsiInlineCodegen.kt
index 038b1ac..28d08f9 100644
--- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/PsiInlineCodegen.kt
+++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/PsiInlineCodegen.kt
@@ -153,7 +153,7 @@
         } else null
 
         val lambda = PsiExpressionLambda(ktLambda!!, state, parameter.isCrossinline, boundReceiver != null)
-        rememberClosure(type, parameter.index, lambda)
+        rememberClosure(type, lambda)
         closuresToGenerate += lambda
         if (boundReceiver != null) {
             // Has to be done immediately to preserve evaluation order.
@@ -179,7 +179,7 @@
     }
 
     override fun putValueIfNeeded(parameterType: JvmKotlinType, value: StackValue, kind: ValueKind, parameterIndex: Int) =
-        putArgumentToLocalVal(parameterType, value, parameterIndex, kind)
+        putArgumentToLocalVal(parameterType, value, kind)
 
     override fun putCapturedValueOnStack(stackValue: StackValue, valueType: Type, paramIndex: Int) =
         putCapturedToLocalVal(stackValue, activeLambda!!.capturedVars[paramIndex], stackValue.kotlinType)
diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt
index 2e58006..f1a37ee 100644
--- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt
+++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt
@@ -92,7 +92,7 @@
         val inlineLambda = argumentExpression.unwrapInlineLambda()
         if (inlineLambda != null) {
             val lambdaInfo = IrExpressionLambdaImpl(codegen, inlineLambda)
-            rememberClosure(parameterType, irValueParameter.index, lambdaInfo)
+            rememberClosure(parameterType, lambdaInfo)
             lambdaInfo.generateLambdaBody(sourceCompiler)
             lambdaInfo.reference.getArgumentsWithIr().forEachIndexed { index, (_, ir) ->
                 val param = lambdaInfo.capturedVars[index]
@@ -146,7 +146,7 @@
             }
 
             val expectedType = JvmKotlinType(parameterType, irValueParameter.type.toIrBasedKotlinType())
-            putArgumentToLocalVal(expectedType, onStack, irValueParameter.index, kind)
+            putArgumentToLocalVal(expectedType, onStack, kind)
         }
     }
 
diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/reflection/KFunctionState.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/reflection/KFunctionState.kt
index 8efee83..b4e9413 100644
--- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/reflection/KFunctionState.kt
+++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/reflection/KFunctionState.kt
@@ -59,13 +59,13 @@
         val hasExtensionReceiver = irFunction.extensionReceiverParameter?.let { getField(it.symbol) } != null
         environment.getCachedFunction(irFunction.symbol, hasDispatchReceiver, hasExtensionReceiver) ?: environment.setCachedFunction(
             irFunction.symbol, hasDispatchReceiver, hasExtensionReceiver,
-            newFunction = createInvokeFunction(irFunction, irClass, hasDispatchReceiver, hasExtensionReceiver).symbol
+            newFunction = createInvokeFunction(irFunction, irClass, hasDispatchReceiver).symbol
         )
     }
 
     companion object {
         private fun createInvokeFunction(
-            irFunction: IrFunction, irClass: IrClass, hasDispatchReceiver: Boolean, hasExtensionReceiver: Boolean
+            irFunction: IrFunction, irClass: IrClass, hasDispatchReceiver: Boolean
         ): IrSimpleFunction {
             val invokeFunction = irClass.declarations
                 .filterIsInstance<IrSimpleFunction>()
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExternalDependenciesGenerator.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExternalDependenciesGenerator.kt
index c3a3b82..4e92543 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExternalDependenciesGenerator.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExternalDependenciesGenerator.kt
@@ -47,7 +47,8 @@
                 // We wait for the unbound to stabilize on fake overrides.
             } while (unbound != prevUnbound)
         } catch (ex: KotlinIrLinkerInternalException) {
-            throw CompilationErrorException()
+            throw ex
+            //throw CompilationErrorException()
         }
     }
 }
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt
index f8cb598..86bb981 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrBodyDeserializer.kt
@@ -21,6 +21,7 @@
 import org.jetbrains.kotlin.ir.types.*
 import org.jetbrains.kotlin.ir.types.impl.*
 import org.jetbrains.kotlin.ir.util.parentAsClass
+import org.jetbrains.kotlin.ir.util.toInt
 import org.jetbrains.kotlin.backend.common.serialization.proto.IrBlock as ProtoBlock
 import org.jetbrains.kotlin.backend.common.serialization.proto.IrBlockBody as ProtoBlockBody
 import org.jetbrains.kotlin.backend.common.serialization.proto.IrBranch as ProtoBranch
@@ -163,7 +164,7 @@
         proto.valueArgumentList.mapIndexed { i, arg ->
             if (arg.hasExpression()) {
                 val expr = deserializeExpression(arg.expression)
-                access.putValueArgument(i, expr)
+                access.putValueArgument(i + proto.hasExtensionReceiver().toInt(), expr)
             }
         }
 
@@ -268,9 +269,10 @@
             IrCallImpl(
                 start, end, type,
                 symbol, proto.memberAccess.typeArgumentCount,
-                proto.memberAccess.valueArgumentList.size,
+                proto.memberAccess.valueArgumentList.size + proto.memberAccess.hasExtensionReceiver().toInt(),
                 origin,
-                superSymbol
+                superSymbol,
+                hasExtensionReceiver = proto.memberAccess.hasExtensionReceiver(),
             )
         deserializeMemberAccessCommon(call, proto.memberAccess)
         return call
@@ -380,7 +382,7 @@
             type,
             symbol,
             proto.memberAccess.typeArgumentCount,
-            proto.memberAccess.valueArgumentCount,
+            proto.memberAccess.valueArgumentCount + proto.memberAccess.hasExtensionReceiver().toInt(),
             reflectionTarget,
             origin
         )