New J2K: preserve comments in DefaultArgumentsConversion

This commit is contained in:
Ilya Kirillov
2019-05-29 14:02:42 +03:00
parent eed55a11ca
commit 60b2b81e9c
3 changed files with 12 additions and 2 deletions
@@ -32,7 +32,7 @@ class BuiltinMembersConversion(private val context: NewJ2kConverterContext) : Re
(receiver.leftNonCodeElements + (receiver.leftNonCodeElements +
receiver.rightNonCodeElements + receiver.rightNonCodeElements +
selector.leftNonCodeElements + selector.leftNonCodeElements +
selector.rightNonCodeElements).dropSpaceesAtBegining() selector.rightNonCodeElements).dropSpacesAtBegining()
} }
return when (conversion.replaceType) { return when (conversion.replaceType) {
@@ -102,10 +102,10 @@ class DefaultArgumentsConversion(private val context: NewJ2kConverterContext) :
return applyRecursive(on, ::remapParameterSymbol) return applyRecursive(on, ::remapParameterSymbol)
} }
parameter.initializer = remapParameterSymbol(defaultValue) as JKExpression parameter.initializer = remapParameterSymbol(defaultValue) as JKExpression
} }
element.declarations -= method element.declarations -= method
calledMethod.appendNonCodeElementsFrom(method)
} }
for (method in element.declarations) { for (method in element.declarations) {
@@ -9,6 +9,7 @@ package org.jetbrains.kotlin.nj2k.tree
interface JKNonCodeElement { interface JKNonCodeElement {
val text: String val text: String
} }
interface JKSpaceElement : JKNonCodeElement interface JKSpaceElement : JKNonCodeElement
interface JKCommentElement : JKNonCodeElement interface JKCommentElement : JKNonCodeElement
@@ -30,6 +31,15 @@ fun JKNonCodeElementsListOwner.takeNonCodeElementsFrom(other: JKNonCodeElementsL
rightNonCodeElements = other.rightNonCodeElements rightNonCodeElements = other.rightNonCodeElements
} }
fun JKNonCodeElementsListOwner.appendNonCodeElementsFrom(other: JKNonCodeElementsListOwner) {
leftNonCodeElements = other.leftNonCodeElements + leftNonCodeElements
rightNonCodeElements = rightNonCodeElements + other.rightNonCodeElements
}
fun List<JKNonCodeElement>.dropSpacesAtBegining() =
dropWhile { it is JKSpaceElement }
fun JKTreeElement.commentsFromInside(): List<JKCommentElement> { fun JKTreeElement.commentsFromInside(): List<JKCommentElement> {
val comments = mutableListOf<JKCommentElement>() val comments = mutableListOf<JKCommentElement>()
fun recurse(element: JKTreeElement): JKTreeElement { fun recurse(element: JKTreeElement): JKTreeElement {