From eed55a11ca9b13b03c3ddd162aaa0a74d47bc9b3 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 29 May 2019 13:53:27 +0300 Subject: [PATCH] New J2K: preserve comments in BuiltinMembersConversion --- .../conversions/BuiltinMembersConversion.kt | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt index f53cdeba23f..1785706140f 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BuiltinMembersConversion.kt @@ -27,6 +27,14 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re val conversion = selector.getConversion() ?: return null val newSelector = conversion.createBuilder().build(selector) + if (this is JKQualifiedExpression && conversion.replaceType == ReplaceType.REPLACE_WITH_QUALIFIER) { + newSelector.rightNonCodeElements = + (receiver.leftNonCodeElements + + receiver.rightNonCodeElements + + selector.leftNonCodeElements + + selector.rightNonCodeElements).dropSpaceesAtBegining() + } + return when (conversion.replaceType) { ReplaceType.REPLACE_SELECTOR -> { if (this is JKQualifiedExpression) { @@ -34,7 +42,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re this } else newSelector } - ReplaceType.FULL_REPLACE -> newSelector + ReplaceType.REPLACE_WITH_QUALIFIER -> newSelector }.let { expression -> conversion.actionAfter?.invoke(expression.copyTreeAndDetach()) ?: expression } @@ -139,7 +147,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re private enum class ReplaceType { - REPLACE_SELECTOR, FULL_REPLACE + REPLACE_SELECTOR, REPLACE_WITH_QUALIFIER } @@ -183,14 +191,15 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re private val conversions: Map> = listOf( - Method("java.lang.Integer.intValue") convertTo Method("kotlin.Int.toInt"),//TODO do not list all variants + Method("java.lang.Short.valueOf") convertTo ExtensionMethod("kotlin.Short.toShort") + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, Method("java.io.PrintStream.println") convertTo Method("kotlin.io.println") - withReplaceType ReplaceType.FULL_REPLACE + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER withFilter ::isSystemOutCall, Method("java.io.PrintStream.print") convertTo Method("kotlin.io.print") - withReplaceType ReplaceType.FULL_REPLACE + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER withFilter ::isSystemOutCall, Method("java.lang.Object.getClass") convertTo Field("kotlin.jvm.javaClass"), @@ -229,17 +238,17 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re Method("java.lang.String.getBytes") convertTo Method("kotlin.text.toByteArray"), Method("java.lang.String.valueOf") convertTo ExtensionMethod("kotlin.Any.toString") - withReplaceType ReplaceType.FULL_REPLACE + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == false }, Method("java.lang.String.valueOf") convertTo Method("kotlin.String") - withReplaceType ReplaceType.FULL_REPLACE + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true }, Method("java.lang.String.copyValueOf") convertTo Method("kotlin.String") - withReplaceType ReplaceType.FULL_REPLACE + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true }, Method("java.lang.String.replaceAll") @@ -316,7 +325,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re KtTokens.PLUS, context.symbolProvider ) - } withReplaceType ReplaceType.FULL_REPLACE, + } withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, Method("java.lang.String.split") convertTo Method("kotlin.text.split") @@ -395,15 +404,15 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re Method("java.util.Collections.singletonList") convertTo Method("kotlin.collections.listOf") - withReplaceType ReplaceType.FULL_REPLACE, + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, Method("java.util.Collections.singleton") convertTo Method("kotlin.collections.setOf") - withReplaceType ReplaceType.FULL_REPLACE, + withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, Method("java.util.Collections.emptyList") - convertTo Method("kotlin.collections.emptyList") withReplaceType ReplaceType.FULL_REPLACE, + convertTo Method("kotlin.collections.emptyList") withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, Method("java.util.Collections.emptySet") - convertTo Method("kotlin.collections.emptySet") withReplaceType ReplaceType.FULL_REPLACE, + convertTo Method("kotlin.collections.emptySet") withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER, Method("java.util.Collections.emptyMap") - convertTo Method("kotlin.collections.emptyMap") withReplaceType ReplaceType.FULL_REPLACE + convertTo Method("kotlin.collections.emptyMap") withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER ).groupBy { it.from.fqName }