J2K: Special conversion for java.lang.String.replaceAll.
#KT-7732
This commit is contained in:
@@ -71,6 +71,15 @@ enum class SpecialMethod(val qualifiedClassName: String?, val methodName: String
|
|||||||
= MethodCallExpression.build(null, "setOf", listOf(codeConverter.convertExpression(arguments.single())), typeArgumentsConverted, false)
|
= MethodCallExpression.build(null, "setOf", listOf(codeConverter.convertExpression(arguments.single())), typeArgumentsConverted, false)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
STRING_REPLACE_ALL("java.lang.String", "replaceAll", 2) {
|
||||||
|
override fun convertCall(qualifier: PsiExpression?, arguments: Array<PsiExpression>, typeArgumentsConverted: List<Type>, codeConverter: CodeConverter)
|
||||||
|
= MethodCallExpression.build(codeConverter.convertExpression(qualifier), "replace",
|
||||||
|
listOf(
|
||||||
|
codeConverter.convertToRegex(arguments[0]),
|
||||||
|
codeConverter.convertExpression(arguments[1])
|
||||||
|
), emptyList(), false)
|
||||||
|
},
|
||||||
|
|
||||||
SYSTEM_OUT_PRINTLN("java.io.PrintStream", "println", null) {
|
SYSTEM_OUT_PRINTLN("java.io.PrintStream", "println", null) {
|
||||||
override fun convertCall(qualifier: PsiExpression?, arguments: Array<PsiExpression>, typeArgumentsConverted: List<Type>, codeConverter: CodeConverter)
|
override fun convertCall(qualifier: PsiExpression?, arguments: Array<PsiExpression>, typeArgumentsConverted: List<Type>, codeConverter: CodeConverter)
|
||||||
= convertSystemOutMethodCall(methodName, qualifier, arguments, typeArgumentsConverted, codeConverter)
|
= convertSystemOutMethodCall(methodName, qualifier, arguments, typeArgumentsConverted, codeConverter)
|
||||||
@@ -104,3 +113,6 @@ private fun convertSystemOutMethodCall(
|
|||||||
if (typeArgumentsConverted.isNotEmpty()) return null
|
if (typeArgumentsConverted.isNotEmpty()) return null
|
||||||
return MethodCallExpression.build(null, methodName, arguments.map { codeConverter.convertExpression(it) }, emptyList(), false)
|
return MethodCallExpression.build(null, methodName, arguments.map { codeConverter.convertExpression(it) }, emptyList(), false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun CodeConverter.convertToRegex(expression: PsiExpression?): Expression
|
||||||
|
= MethodCallExpression.build(convertExpression(expression), "toRegex", emptyList(), emptyList(), false).assignNoPrototype()
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package demo
|
|||||||
internal class Test {
|
internal class Test {
|
||||||
fun test() {
|
fun test() {
|
||||||
var name = "$$$$"
|
var name = "$$$$"
|
||||||
name = name.replaceAll("\\$[0-9]+", "\\$")
|
name = name.replace("\\$[0-9]+".toRegex(), "\\$")
|
||||||
|
|
||||||
val c = '$'
|
val c = '$'
|
||||||
println(c)
|
println(c)
|
||||||
|
|||||||
Reference in New Issue
Block a user