diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index 099a32d351d..b17eb4221f9 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -37,7 +37,6 @@ import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.resolve.jvm.AsmTypes -import org.jetbrains.kotlin.resolve.jvm.AsmTypes.DEFAULT_CONSTRUCTOR_MARKER import org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.kotlin.utils.addToStdlib.safeAs @@ -356,13 +355,6 @@ class ExpressionCodegen( } callGenerator.beforeValueParametersStart() - val extraArgsShift = - when { - callee is IrConstructor && callee.parentAsClass.isEnumClass -> 2 - callee is IrConstructor && callee.parentAsClass.isInner -> 1 // skip the `$outer` parameter - else -> 0 - } - val defaultMask = DefaultCallArgs(callable.valueParameterTypes.size - extraArgsShift) val typeParameters = if (callee is IrConstructor) callee.parentAsClass.typeParameters + callee.typeParameters else @@ -376,16 +368,6 @@ class ExpressionCodegen( arg != null -> { callGenerator.genValueAndPut(irParameter, arg, parameterType, this@ExpressionCodegen, data) } - irParameter.hasDefaultValue() -> { - callGenerator.putValueIfNeeded( - parameterType, - StackValue.createDefaultValue(parameterType), - ValueKind.DEFAULT_PARAMETER, - i, - this@ExpressionCodegen - ) - defaultMask.mark(i - extraArgsShift/*TODO switch to separate lower*/) - } else -> { assert(irParameter.varargElementType != null) val type = typeMapper.mapType( @@ -412,7 +394,6 @@ class ExpressionCodegen( callGenerator.genCall( callable, - defaultMask.generateOnStackIfNeeded(callGenerator, callee is IrConstructor, this), this, expression ) @@ -1231,25 +1212,6 @@ class ExpressionCodegen( } } -fun DefaultCallArgs.generateOnStackIfNeeded(callGenerator: IrCallGenerator, isConstructor: Boolean, codegen: ExpressionCodegen): Boolean { - val toInts = toInts() - if (toInts.isNotEmpty()) { - for (mask in toInts) { - callGenerator.putValueIfNeeded(Type.INT_TYPE, StackValue.constant(mask, Type.INT_TYPE), ValueKind.DEFAULT_MASK, -1, codegen) - } - - val parameterType = if (isConstructor) DEFAULT_CONSTRUCTOR_MARKER else OBJECT_TYPE - callGenerator.putValueIfNeeded( - parameterType, - StackValue.constant(null, parameterType), - ValueKind.METHOD_HANDLE_IN_DEFAULT, - -1, - codegen - ) - } - return toInts.isNotEmpty() -} - val IrType.isReifiedTypeParameter: Boolean get() = this.classifierOrNull?.safeAs()?.owner?.isReified == true diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrCallGenerator.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrCallGenerator.kt index abf9fdd16a4..9545ce6ee98 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrCallGenerator.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrCallGenerator.kt @@ -28,12 +28,8 @@ import org.jetbrains.org.objectweb.asm.Type interface IrCallGenerator { - fun genCall(callableMethod: Callable, callDefault: Boolean, codegen: ExpressionCodegen, expression: IrFunctionAccessExpression) { - if (!callDefault) { - callableMethod.genInvokeInstruction(codegen.mv) - } else { - (callableMethod as CallableMethod).genInvokeDefaultInstruction(codegen.mv) - } + fun genCall(callableMethod: Callable, codegen: ExpressionCodegen, expression: IrFunctionAccessExpression) { + callableMethod.genInvokeInstruction(codegen.mv) } fun beforeValueParametersStart() { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt index be05fb44b01..2425d348457 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrInlineCodegen.kt @@ -99,7 +99,6 @@ class IrInlineCodegen( override fun genCall( callableMethod: Callable, - callDefault: Boolean, codegen: ExpressionCodegen, expression: IrFunctionAccessExpression ) { @@ -107,7 +106,7 @@ class IrInlineCodegen( // TODO port inlining cycle detection to IrFunctionAccessExpression & pass it state.globalInlineContext.enterIntoInlining(null) try { - performInline(typeArguments, callDefault, codegen) + performInline(typeArguments, false, codegen) } finally { state.globalInlineContext.exitFromInliningOf(null) }