New J2K: preserve comments in BuiltinMembersConversion
This commit is contained in:
@@ -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<String, List<Conversion>> =
|
||||
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 }
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user