New J2K: do not recreate typeElement on updating type
This commit is contained in:
@@ -23,14 +23,13 @@ import org.jetbrains.kotlin.nj2k.tree.impl.*
|
|||||||
|
|
||||||
class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() {
|
class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
return when (element) {
|
when (element) {
|
||||||
is JKTypeElement -> {
|
is JKTypeElement -> {
|
||||||
val newType = element.type.mapType(element)
|
element.type = element.type.mapType(element)
|
||||||
JKTypeElementImpl(newType).withNonCodeElementsFrom(element)
|
|
||||||
}
|
}
|
||||||
is JKJavaNewExpression -> {
|
is JKJavaNewExpression -> {
|
||||||
val newClassSymbol = element.classSymbol.mapClassSymbol(null)
|
val newClassSymbol = element.classSymbol.mapClassSymbol(null)
|
||||||
recurse(
|
return recurse(
|
||||||
JKJavaNewExpressionImpl(
|
JKJavaNewExpressionImpl(
|
||||||
newClassSymbol,
|
newClassSymbol,
|
||||||
element::arguments.detached(),
|
element::arguments.detached(),
|
||||||
@@ -39,8 +38,8 @@ class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveAppl
|
|||||||
).withNonCodeElementsFrom(element)
|
).withNonCodeElementsFrom(element)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
else -> recurse(element)
|
|
||||||
}
|
}
|
||||||
|
return recurse(element)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun JKTypeArgumentList.fixTypeArguments(classSymbol: JKClassSymbol): JKTypeArgumentList {
|
private fun JKTypeArgumentList.fixTypeArguments(classSymbol: JKClassSymbol): JKTypeArgumentList {
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ fun JKModifiersListOwner.modifierElements(): List<JKModifierElement> =
|
|||||||
|
|
||||||
|
|
||||||
interface JKTypeElement : JKTreeElement {
|
interface JKTypeElement : JKTreeElement {
|
||||||
val type: JKType
|
var type: JKType
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class JKStatement : JKTreeElement, JKBranchElementBase() {
|
abstract class JKStatement : JKTreeElement, JKBranchElementBase() {
|
||||||
@@ -322,7 +322,7 @@ interface JKQualifiedExpression : JKExpression, JKAssignableExpression {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface JKTypeArgumentList : JKTreeElement {
|
interface JKTypeArgumentList : JKTreeElement {
|
||||||
val typeArguments: List<JKTypeElement>
|
var typeArguments: List<JKTypeElement>
|
||||||
}
|
}
|
||||||
|
|
||||||
interface JKTypeArgumentListOwner : JKTreeElement {
|
interface JKTypeArgumentListOwner : JKTreeElement {
|
||||||
|
|||||||
Reference in New Issue
Block a user