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 conversion = selector.getConversion() ?: return null
|
||||||
val newSelector = conversion.createBuilder().build(selector)
|
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) {
|
return when (conversion.replaceType) {
|
||||||
ReplaceType.REPLACE_SELECTOR -> {
|
ReplaceType.REPLACE_SELECTOR -> {
|
||||||
if (this is JKQualifiedExpression) {
|
if (this is JKQualifiedExpression) {
|
||||||
@@ -34,7 +42,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re
|
|||||||
this
|
this
|
||||||
} else newSelector
|
} else newSelector
|
||||||
}
|
}
|
||||||
ReplaceType.FULL_REPLACE -> newSelector
|
ReplaceType.REPLACE_WITH_QUALIFIER -> newSelector
|
||||||
}.let { expression ->
|
}.let { expression ->
|
||||||
conversion.actionAfter?.invoke(expression.copyTreeAndDetach()) ?: expression
|
conversion.actionAfter?.invoke(expression.copyTreeAndDetach()) ?: expression
|
||||||
}
|
}
|
||||||
@@ -139,7 +147,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re
|
|||||||
|
|
||||||
|
|
||||||
private enum class ReplaceType {
|
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>> =
|
private val conversions: Map<String, List<Conversion>> =
|
||||||
listOf(
|
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")
|
Method("java.io.PrintStream.println") convertTo Method("kotlin.io.println")
|
||||||
withReplaceType ReplaceType.FULL_REPLACE
|
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
||||||
withFilter ::isSystemOutCall,
|
withFilter ::isSystemOutCall,
|
||||||
|
|
||||||
Method("java.io.PrintStream.print") convertTo Method("kotlin.io.print")
|
Method("java.io.PrintStream.print") convertTo Method("kotlin.io.print")
|
||||||
withReplaceType ReplaceType.FULL_REPLACE
|
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
||||||
withFilter ::isSystemOutCall,
|
withFilter ::isSystemOutCall,
|
||||||
|
|
||||||
Method("java.lang.Object.getClass") convertTo Field("kotlin.jvm.javaClass"),
|
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.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.FULL_REPLACE
|
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.valueOf")
|
Method("java.lang.String.valueOf")
|
||||||
convertTo Method("kotlin.String")
|
convertTo Method("kotlin.String")
|
||||||
withReplaceType ReplaceType.FULL_REPLACE
|
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
||||||
withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true },
|
withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true },
|
||||||
|
|
||||||
Method("java.lang.String.copyValueOf")
|
Method("java.lang.String.copyValueOf")
|
||||||
convertTo Method("kotlin.String")
|
convertTo Method("kotlin.String")
|
||||||
withReplaceType ReplaceType.FULL_REPLACE
|
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER
|
||||||
withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true },
|
withByArgumentsFilter { it.isNotEmpty() && it.first().type(context.symbolProvider)?.isArrayType() == true },
|
||||||
|
|
||||||
Method("java.lang.String.replaceAll")
|
Method("java.lang.String.replaceAll")
|
||||||
@@ -316,7 +325,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re
|
|||||||
KtTokens.PLUS,
|
KtTokens.PLUS,
|
||||||
context.symbolProvider
|
context.symbolProvider
|
||||||
)
|
)
|
||||||
} withReplaceType ReplaceType.FULL_REPLACE,
|
} withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER,
|
||||||
|
|
||||||
Method("java.lang.String.split")
|
Method("java.lang.String.split")
|
||||||
convertTo Method("kotlin.text.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")
|
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")
|
Method("java.util.Collections.singleton") convertTo Method("kotlin.collections.setOf")
|
||||||
withReplaceType ReplaceType.FULL_REPLACE,
|
withReplaceType ReplaceType.REPLACE_WITH_QUALIFIER,
|
||||||
Method("java.util.Collections.emptyList")
|
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")
|
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")
|
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 }
|
).groupBy { it.from.fqName }
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user