diff --git a/j2k/src/org/jetbrains/kotlin/j2k/SpecialMethod.kt b/j2k/src/org/jetbrains/kotlin/j2k/SpecialMethod.kt index 0bd352192bd..3915f65c850 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/SpecialMethod.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/SpecialMethod.kt @@ -157,15 +157,20 @@ enum class SpecialMethod(val qualifiedClassName: String?, val methodName: String STRING_FORMAT_WITH_LOCALE(JAVA_LANG_STRING, "format", null) { override fun matches(method: PsiMethod) - = super.matches(method) && method.parameterList.parametersCount >= 2 && method.parameterList.parameters.first().type.canonicalText == "java.util.Locale" + = super.matches(method) && + method.parameterList.parametersCount == 3 && + method.parameterList.parameters.let { it.first().type.canonicalText == "java.util.Locale" && it.last().isVarArgs } override fun convertCall(qualifier: PsiExpression?, arguments: Array, typeArgumentsConverted: List, codeConverter: CodeConverter) = MethodCallExpression.build(codeConverter.convertExpression(arguments[1]), "format", codeConverter.convertExpressions(listOf(arguments[0]) + arguments.drop(2)), emptyList(), false) }, STRING_FORMAT(JAVA_LANG_STRING, "format", null) { - override fun matches(method: PsiMethod) - = super.matches(method) && method.parameterList.parametersCount >= 1 + override fun matches(method: PsiMethod): Boolean { + return super.matches(method) && + method.parameterList.parametersCount == 2 && + method.parameterList.parameters.last().isVarArgs + } override fun convertCall(qualifier: PsiExpression?, arguments: Array, typeArgumentsConverted: List, codeConverter: CodeConverter) = MethodCallExpression.build(codeConverter.convertExpression(arguments.first()), "format", codeConverter.convertExpressions(arguments.drop(1)), emptyList(), false)