New J2K: add more string operations conversions
This commit is contained in:
@@ -235,12 +235,33 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re
|
|||||||
Method("java.lang.CharSequence.charAt") convertTo Method("kotlin.String.get"),
|
Method("java.lang.CharSequence.charAt") convertTo Method("kotlin.String.get"),
|
||||||
Method("java.lang.String.indexOf") convertTo Method("kotlin.text.indexOf"),
|
Method("java.lang.String.indexOf") convertTo Method("kotlin.text.indexOf"),
|
||||||
Method("java.lang.String.lastIndexOf") convertTo Method("kotlin.text.lastIndexOf"),
|
Method("java.lang.String.lastIndexOf") convertTo Method("kotlin.text.lastIndexOf"),
|
||||||
|
Method("java.lang.String.getBytes") convertTo Method("kotlin.text.toByteArray")
|
||||||
|
withByArgumentsFilter { it.singleOrNull()?.type(context.symbolProvider)?.isStringType() == true }
|
||||||
|
withArgumentsProvider { arguments ->
|
||||||
|
val argument = arguments.arguments.single()::value.detached()
|
||||||
|
val call = JKKtCallExpressionImpl(
|
||||||
|
context.symbolProvider.provideByFqName("kotlin.text.charset"),
|
||||||
|
JKArgumentListImpl(argument)
|
||||||
|
)
|
||||||
|
JKArgumentListImpl(call)
|
||||||
|
},
|
||||||
Method("java.lang.String.getBytes") convertTo Method("kotlin.text.toByteArray"),
|
Method("java.lang.String.getBytes") convertTo Method("kotlin.text.toByteArray"),
|
||||||
Method("java.lang.String.valueOf")
|
Method("java.lang.String.valueOf")
|
||||||
convertTo ExtensionMethod("kotlin.Any.toString")
|
convertTo ExtensionMethod("kotlin.Any.toString")
|
||||||
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
||||||
withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == false },
|
withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == false },
|
||||||
|
|
||||||
|
Method("java.lang.String.getChars")
|
||||||
|
convertTo Method("kotlin.text.toCharArray")
|
||||||
|
withByArgumentsFilter { it.size == 4 }
|
||||||
|
withArgumentsProvider { argumentList ->
|
||||||
|
val srcBeginArgument = argumentList.arguments[0]::value.detached()
|
||||||
|
val srcEndArgument = argumentList.arguments[1]::value.detached()
|
||||||
|
val dstArgument = argumentList.arguments[2]::value.detached()
|
||||||
|
val dstBeginArgument = argumentList.arguments[3]::value.detached()
|
||||||
|
JKArgumentListImpl(dstArgument, dstBeginArgument, srcBeginArgument, srcEndArgument)
|
||||||
|
},
|
||||||
|
|
||||||
Method("java.lang.String.valueOf")
|
Method("java.lang.String.valueOf")
|
||||||
convertTo Method("kotlin.String")
|
convertTo Method("kotlin.String")
|
||||||
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
||||||
@@ -298,7 +319,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
Method("java.lang.String.matches") convertTo Method("kotlin.text.matches"),
|
||||||
Method("java.lang.String.regionMatches")
|
Method("java.lang.String.regionMatches")
|
||||||
convertTo Method("kotlin.text.regionMatches")
|
convertTo Method("kotlin.text.regionMatches")
|
||||||
withByArgumentsFilter { it.size == 5 }
|
withByArgumentsFilter { it.size == 5 }
|
||||||
|
|||||||
Reference in New Issue
Block a user