diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt index bf99fdae874..f53cdeba23f 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt @@ -290,6 +290,33 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re ) }, + Method("java.lang.String.regionMatches") + convertTo Method("kotlin.text.regionMatches") + withByArgumentsFilter { it.size == 5 } + withArgumentsProvider { arguments -> + val detachedArguments = arguments::arguments.detached() + JKArgumentListImpl( + detachedArguments.drop(1) + JKNamedArgumentImpl( + detachedArguments.first()::value.detached().also { + it.clearNonCodeElements() + }, + JKNameIdentifierImpl("ignoreCase") + ) + ) + }, + + Method("java.lang.String.concat") convertTo + CustomExpression { expression -> + if (expression !is JKMethodCallExpression) error("Expression should be JKMethodCallExpression") + val firstArgument = expression.parent.cast()::receiver.detached() + val secondArgument = expression.arguments.arguments.first()::value.detached() + kotlinBinaryExpression( + firstArgument, + secondArgument, + KtTokens.PLUS, + context.symbolProvider + ) + } withReplaceType ReplaceType.FULL_REPLACE, Method("java.lang.String.split") convertTo Method("kotlin.text.split")