J2K: Avoid to convert to deprecated String methods, namely toByteArray.

This commit is contained in:
Ilya Gorbunov
2015-12-21 07:43:59 +03:00
parent ac15807ba4
commit ddcafdd9b3
2 changed files with 11 additions and 3 deletions
@@ -333,8 +333,16 @@ enum class SpecialMethod(val qualifiedClassName: String?, val methodName: String
},
STRING_GET_BYTES(JAVA_LANG_STRING, "getBytes", null) {
override fun convertCall(qualifier: PsiExpression?, arguments: Array<PsiExpression>, typeArgumentsConverted: List<Type>, codeConverter: CodeConverter)
= MethodCallExpression.build(codeConverter.convertExpression(qualifier), "toByteArray", codeConverter.convertExpressions(arguments), emptyList(), false)
override fun convertCall(qualifier: PsiExpression?, arguments: Array<PsiExpression>, typeArgumentsConverted: List<Type>, codeConverter: CodeConverter): MethodCallExpression {
val charsetArg = arguments.lastOrNull()?.check { it.type?.canonicalText == JAVA_LANG_STRING }
val convertedArguments = codeConverter.convertExpressions(arguments).map {
if (charsetArg != null && it.prototypes?.singleOrNull()?.element == charsetArg)
MethodCallExpression.buildNotNull(null, "charset", listOf(it)).assignNoPrototype()
else
it
}
return MethodCallExpression.build(codeConverter.convertExpression(qualifier), "toByteArray", convertedArguments, emptyList(), false)
}
},
STRING_GET_CHARS(JAVA_LANG_STRING, "getChars", 4) {
@@ -84,7 +84,7 @@ internal class A {
s.toByteArray()
s.toByteArray(Charset.forName("utf-8"))
s.toByteArray("utf-8")
s.toByteArray(charset("utf-8"))
val chars = CharArray(10)
s.toCharArray(chars, 0, 1, 11)