diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/MethodSignatureMapper.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/MethodSignatureMapper.kt index e59edf196fa..2ad086ca374 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/MethodSignatureMapper.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/MethodSignatureMapper.kt @@ -228,7 +228,9 @@ class MethodSignatureMapper(private val context: JvmBackendContext) { else -> JvmMethodParameterKind.VALUE } val type = - if (forceSingleValueParameterBoxing(function.toIrBasedDescriptor())) parameter.type.makeNullable() else parameter.type + if (function.name.asString() == "remove" && forceSingleValueParameterBoxing(function.toIrBasedDescriptor())) + parameter.type.makeNullable() + else parameter.type writeParameter(sw, kind, type, function) } diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt index e97d544b7f2..f0d8c950319 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/kotlin/methodSignatureMapping.kt @@ -50,7 +50,7 @@ fun FunctionDescriptor.computeJvmDescriptor(withReturnType: Boolean = true, with fun forceSingleValueParameterBoxing(f: CallableDescriptor): Boolean { if (f !is FunctionDescriptor) return false - if (f.valueParameters.size != 1 || f.isFromJavaOrBuiltins() || f.name.asString() != "remove") return false + if (f.name.asString() != "remove" || f.valueParameters.size != 1 || f.isFromJavaOrBuiltins()) return false if ((f.original.valueParameters.single().type.mapToJvmType() as? JvmType.Primitive)?.jvmPrimitiveType != JvmPrimitiveType.INT) return false val overridden =