New J2K: Implement assignment simplify conversion
This commit is contained in:
@@ -33,6 +33,8 @@ object ConversionsRunner {
|
|||||||
+AssignmentAsExpressionToAlsoConversion(context)
|
+AssignmentAsExpressionToAlsoConversion(context)
|
||||||
+AssignmentStatementValCreationConversion(context)
|
+AssignmentStatementValCreationConversion(context)
|
||||||
+AssignmentStatementOperatorConversion()
|
+AssignmentStatementOperatorConversion()
|
||||||
|
+AssignmentStatementSimplifyValConversion()
|
||||||
|
+AssignmentStatementSimplifyAlsoConversion()
|
||||||
+ConstructorConversion(context)
|
+ConstructorConversion(context)
|
||||||
+PrimaryConstructorDetectConversion(context)
|
+PrimaryConstructorDetectConversion(context)
|
||||||
+InsertDefaultPrimaryConstructorConversion(context)
|
+InsertDefaultPrimaryConstructorConversion(context)
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
|
|||||||
val symbol = symbolProvider.provideSymbol(this)
|
val symbol = symbolProvider.provideSymbol(this)
|
||||||
val access = when (symbol) {
|
val access = when (symbol) {
|
||||||
is JKClassSymbol -> JKClassAccessExpressionImpl(symbol)
|
is JKClassSymbol -> JKClassAccessExpressionImpl(symbol)
|
||||||
is JKFieldSymbol -> JKJavaFieldAccessExpressionImpl(symbol)
|
is JKFieldSymbol -> JKFieldAccessExpressionImpl(symbol)
|
||||||
else -> TODO()
|
else -> TODO()
|
||||||
}
|
}
|
||||||
return qualifierExpression?.let { JKQualifiedExpressionImpl(it.toJK(), JKJavaQualifierImpl.DOT, access) } ?: access
|
return qualifierExpression?.let { JKQualifiedExpressionImpl(it.toJK(), JKJavaQualifierImpl.DOT, access) } ?: access
|
||||||
|
|||||||
@@ -326,8 +326,7 @@ class NewCodeBuilder {
|
|||||||
|
|
||||||
private fun renderType(type: JKType) {
|
private fun renderType(type: JKType) {
|
||||||
when (type) {
|
when (type) {
|
||||||
is JKClassType ->
|
is JKClassType -> type.classReference.fqName?.let { printer.printWithNoIndent(FqName(it).shortName().asString()) }
|
||||||
(type.classReference as JKClassSymbol).fqName?.let { printer.printWithNoIndent(FqName(it).shortName().asString()) }
|
|
||||||
is JKUnresolvedClassType -> printer.printWithNoIndent(type.name)
|
is JKUnresolvedClassType -> printer.printWithNoIndent(type.name)
|
||||||
is JKContextType -> return
|
is JKContextType -> return
|
||||||
else -> printer.printWithNoIndent("Unit /* TODO: ${type::class} */")
|
else -> printer.printWithNoIndent("Unit /* TODO: ${type::class} */")
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ package org.jetbrains.kotlin.j2k
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKArrayAccessExpression
|
import org.jetbrains.kotlin.j2k.tree.JKArrayAccessExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKElement
|
import org.jetbrains.kotlin.j2k.tree.JKElement
|
||||||
import org.jetbrains.kotlin.j2k.tree.JKKtFieldAccessExpression
|
import org.jetbrains.kotlin.j2k.tree.JKFieldAccessExpression
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKArrayAccessExpressionImpl
|
import org.jetbrains.kotlin.j2k.tree.impl.JKArrayAccessExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtFieldAccessExpressionImpl
|
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl
|
||||||
|
|
||||||
fun <T : JKElement> T.copyTree(): T {
|
fun <T : JKElement> T.copyTree(): T {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is JKKtFieldAccessExpression -> JKKtFieldAccessExpressionImpl(identifier)
|
is JKFieldAccessExpression -> JKFieldAccessExpressionImpl(identifier)
|
||||||
is JKArrayAccessExpression -> JKArrayAccessExpressionImpl(expression.copyTree(), indexExpression.copyTree())
|
is JKArrayAccessExpression -> JKArrayAccessExpressionImpl(expression.copyTree(), indexExpression.copyTree())
|
||||||
else -> TODO("Not supported+$this.toString()")
|
else -> TODO("Not supported ${this::class}")
|
||||||
} as T
|
} as T
|
||||||
}
|
}
|
||||||
+2
-7
@@ -8,24 +8,19 @@ package org.jetbrains.kotlin.j2k.conversions
|
|||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.j2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
import org.jetbrains.kotlin.j2k.tree.impl.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
||||||
|
|
||||||
class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
class AssignmentAsExpressionToAlsoConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
if (element !is JKJavaAssignmentExpression) return recurse(element)
|
if (element !is JKJavaAssignmentExpression) return recurse(element)
|
||||||
|
|
||||||
val alsoSymbol = context.symbolProvider.provideDirectSymbol(
|
|
||||||
resolveFqName(ClassId.fromString("kotlin/also"), element.getParentOfType<JKClass>() ?: element, context)!!
|
|
||||||
) as JKMethodSymbol
|
|
||||||
|
|
||||||
val alsoExpression = JKKtAlsoCallExpressionImpl(
|
val alsoExpression = JKKtAlsoCallExpressionImpl(
|
||||||
JKBlockStatementImpl(
|
JKBlockStatementImpl(
|
||||||
JKBlockImpl(listOf(JKKtAssignmentStatementImpl(element.field, JKStubExpressionImpl(), element.operator)))
|
JKBlockImpl(listOf(JKKtAssignmentStatementImpl(element.field, JKStubExpressionImpl(), element.operator)))
|
||||||
), alsoSymbol
|
), context.symbolProvider.provideByFqName("kotlin/also", context.backAnnotator.invoke(element.parentOfType<JKClass>()!!)!!)
|
||||||
).also {
|
).also {
|
||||||
it.statement.cast<JKBlockStatement>().block.statements.first().cast<JKKtAssignmentStatement>().expression =
|
it.statement.cast<JKBlockStatement>().block.statements.first().cast<JKKtAssignmentStatement>().expression =
|
||||||
JKKtFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it.parameter))
|
JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it.parameter))
|
||||||
}
|
}
|
||||||
element.invalidate()
|
element.invalidate()
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ class AssignmentStatementOperatorConversion : RecursiveApplicableConversionBase(
|
|||||||
element.operator = JKKtOperatorImpl.tokenToOperator[KtTokens.EQ] ?: return recurse(element)
|
element.operator = JKKtOperatorImpl.tokenToOperator[KtTokens.EQ] ?: return recurse(element)
|
||||||
val expr = element.expression
|
val expr = element.expression
|
||||||
element.expression = JKStubExpressionImpl()
|
element.expression = JKStubExpressionImpl()
|
||||||
element.expression = JKBinaryExpressionImpl(expr, element.field.copyTree(), newOperator)
|
element.expression = JKBinaryExpressionImpl(element.field.copyTree(), expr, newOperator)
|
||||||
} else {
|
} else {
|
||||||
element.operator = newOperator
|
element.operator = newOperator
|
||||||
}
|
}
|
||||||
|
|||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.j2k.conversions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.impl.JKExpressionStatementImpl
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.impl.JKStubExpressionImpl
|
||||||
|
|
||||||
|
class AssignmentStatementSimplifyAlsoConversion : RecursiveApplicableConversionBase() {
|
||||||
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
|
if (element !is JKExpressionStatement) return recurse(element)
|
||||||
|
val qualifiedExpression = element.expression as? JKQualifiedExpression ?: return recurse(element)
|
||||||
|
val alsoCall = qualifiedExpression.selector as? JKKtAlsoCallExpression ?: return recurse(element)
|
||||||
|
return recurse(if (alsoCall.statement !is JKBlockStatement) alsoCall.statement.also {
|
||||||
|
alsoCall.statement = JKExpressionStatementImpl(JKStubExpressionImpl())
|
||||||
|
inlineVal(it, qualifiedExpression.receiver.also { qualifiedExpression.receiver = JKStubExpressionImpl() })
|
||||||
|
} else element)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun inlineVal(statement: JKStatement, expression: JKExpression) {
|
||||||
|
if (statement is JKKtAssignmentStatement) {
|
||||||
|
(statement.expression as? JKBinaryExpression)?.right = expression
|
||||||
|
if (statement.expression !is JKBinaryExpression) statement.expression = expression
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.j2k.conversions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
|
import org.jetbrains.kotlin.j2k.tree.impl.JKStubExpressionImpl
|
||||||
|
|
||||||
|
class AssignmentStatementSimplifyValConversion : RecursiveApplicableConversionBase() {
|
||||||
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
|
if (element !is JKKtAlsoCallExpression) return recurse(element)
|
||||||
|
val codeBlock = (element.statement as? JKBlockStatement)?.block ?: return recurse(element)
|
||||||
|
if (codeBlock.statements.size > 1) {
|
||||||
|
val assignment = codeBlock.statements[1] as? JKKtAssignmentStatement ?: return recurse(element)
|
||||||
|
val declaration = codeBlock.statements[0] as? JKDeclarationStatement ?: return recurse(element)
|
||||||
|
when (declaration.declaredStatements.size) {
|
||||||
|
1 -> if (assignment.expression !is JKBinaryExpression) {
|
||||||
|
codeBlock.statements = listOf(assignment)
|
||||||
|
(assignment.field as JKQualifiedExpression).receiver = declaration.extractInitializerByIndex(0)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
2 -> if (assignment.expression !is JKBinaryExpression) {
|
||||||
|
codeBlock.statements = listOf(assignment)
|
||||||
|
val arrayAccess = assignment.field as JKArrayAccessExpression
|
||||||
|
arrayAccess.expression = declaration.extractInitializerByIndex(0)
|
||||||
|
arrayAccess.indexExpression = declaration.extractInitializerByIndex(1)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (codeBlock.statements.size == 1) {
|
||||||
|
element.statement = codeBlock.statements.first().also { codeBlock.statements = emptyList() }
|
||||||
|
}
|
||||||
|
return recurse(element)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun JKDeclarationStatement.extractInitializerByIndex(i: Int): JKExpression {
|
||||||
|
val variable = (declaredStatements[i] as JKLocalVariable)
|
||||||
|
return variable.initializer.also { variable.initializer = JKStubExpressionImpl() }
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-3
@@ -29,7 +29,7 @@ class AssignmentStatementValCreationConversion(val context: ConversionContext) :
|
|||||||
JKNameIdentifierImpl("arr"),
|
JKNameIdentifierImpl("arr"),
|
||||||
ex1
|
ex1
|
||||||
).also {
|
).also {
|
||||||
assignableExpr.expression = JKKtFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it))
|
assignableExpr.expression = JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it))
|
||||||
}, JKLocalVariableImpl(
|
}, JKLocalVariableImpl(
|
||||||
JKModifierListImpl(JKModalityModifierImpl(JKModalityModifier.Modality.FINAL)),
|
JKModifierListImpl(JKModalityModifierImpl(JKModalityModifier.Modality.FINAL)),
|
||||||
JKTypeElementImpl(JKJavaVoidType/*TODO*/),
|
JKTypeElementImpl(JKJavaVoidType/*TODO*/),
|
||||||
@@ -37,7 +37,7 @@ class AssignmentStatementValCreationConversion(val context: ConversionContext) :
|
|||||||
ex2
|
ex2
|
||||||
).also {
|
).also {
|
||||||
assignableExpr.indexExpression =
|
assignableExpr.indexExpression =
|
||||||
JKKtFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it))
|
JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -55,7 +55,7 @@ class AssignmentStatementValCreationConversion(val context: ConversionContext) :
|
|||||||
JKNameIdentifierImpl("arg"),
|
JKNameIdentifierImpl("arg"),
|
||||||
ex
|
ex
|
||||||
).also {
|
).also {
|
||||||
assignableExpr.receiver = JKKtFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it))
|
assignableExpr.receiver = JKFieldAccessExpressionImpl(context.symbolProvider.provideUniverseSymbol(it))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.j2k.conversions
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
import org.jetbrains.kotlin.j2k.ConversionContext
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtFieldAccessExpressionImpl
|
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldAccessExpressionImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKUniverseMethodSymbol
|
import org.jetbrains.kotlin.j2k.tree.impl.JKUniverseMethodSymbol
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ class DefaultArgumentsConversion(private val context: ConversionContext) : Recur
|
|||||||
if (target is JKParameter) {
|
if (target is JKParameter) {
|
||||||
val newSymbol =
|
val newSymbol =
|
||||||
context.symbolProvider.provideUniverseSymbol(calledMethod.parameters[method.parameters.indexOf(target)])
|
context.symbolProvider.provideUniverseSymbol(calledMethod.parameters[method.parameters.indexOf(target)])
|
||||||
return JKKtFieldAccessExpressionImpl(newSymbol)
|
return JKFieldAccessExpressionImpl(newSymbol)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -101,10 +101,6 @@ class JKJavaMethodCallExpressionImpl(
|
|||||||
override val arguments: JKExpressionList by child(arguments)
|
override val arguments: JKExpressionList by child(arguments)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKJavaFieldAccessExpressionImpl(override var identifier: JKFieldSymbol) : JKJavaFieldAccessExpression, JKElementBase() {
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitJavaFieldAccessExpression(this, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
class JKJavaNewExpressionImpl(
|
class JKJavaNewExpressionImpl(
|
||||||
override val constructorSymbol: JKMethodSymbol,
|
override val constructorSymbol: JKMethodSymbol,
|
||||||
arguments: JKExpressionList
|
arguments: JKExpressionList
|
||||||
|
|||||||
@@ -355,3 +355,7 @@ class JKDelegationConstructorCallImpl(
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDelegationConstructorCall(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitDelegationConstructorCall(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class JKFieldAccessExpressionImpl(override var identifier: JKFieldSymbol) : JKFieldAccessExpression, JKElementBase() {
|
||||||
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitFieldAccessExpression(this, data)
|
||||||
|
}
|
||||||
@@ -72,10 +72,6 @@ class JKKtCallExpressionImpl(
|
|||||||
override var arguments: JKExpressionList by child(arguments)
|
override var arguments: JKExpressionList by child(arguments)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKKtFieldAccessExpressionImpl(override val identifier: JKFieldSymbol) : JKKtFieldAccessExpression, JKElementBase() {
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitKtFieldAccessExpression(this, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
class JKKtLiteralExpressionImpl(
|
class JKKtLiteralExpressionImpl(
|
||||||
override val literal: String,
|
override val literal: String,
|
||||||
override val type: JKLiteralExpression.LiteralType
|
override val type: JKLiteralExpression.LiteralType
|
||||||
@@ -114,6 +110,9 @@ class JKKtOperatorImpl private constructor(val token: KtSingleValueToken) : JKOp
|
|||||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.EQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.EQ]!!
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.EQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.EQ]!!
|
||||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.PLUSEQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.PLUSEQ]!!
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.PLUSEQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.PLUSEQ]!!
|
||||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.MINUSEQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.MINUSEQ]!!
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.MINUSEQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.MINUSEQ]!!
|
||||||
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.ASTERISKEQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.MULTEQ]!!
|
||||||
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.DIVEQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.DIVEQ]!!
|
||||||
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.PERCEQ]!!] = JKKtOperatorImpl.tokenToOperator[KtTokens.PERCEQ]!!
|
||||||
|
|
||||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.AND]!!] = JKKtWordOperatorImpl("and")
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.AND]!!] = JKKtWordOperatorImpl("and")
|
||||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.OR]!!] = JKKtWordOperatorImpl("or")
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.OR]!!] = JKKtWordOperatorImpl("or")
|
||||||
@@ -124,6 +123,10 @@ class JKKtOperatorImpl private constructor(val token: KtSingleValueToken) : JKOp
|
|||||||
|
|
||||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.OREQ]!!] = JKKtWordOperatorImpl("or")
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.OREQ]!!] = JKKtWordOperatorImpl("or")
|
||||||
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.ANDEQ]!!] = JKKtWordOperatorImpl("and")
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.ANDEQ]!!] = JKKtWordOperatorImpl("and")
|
||||||
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.XOREQ]!!] = JKKtWordOperatorImpl("xor")
|
||||||
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.GTGTGTEQ]!!] = JKKtWordOperatorImpl("ushr")
|
||||||
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.GTGTEQ]!!] = JKKtWordOperatorImpl("shr")
|
||||||
|
this[JKJavaOperatorImpl.tokenToOperator[JavaTokenType.LTLTEQ]!!] = JKKtWordOperatorImpl("shl")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -139,9 +142,14 @@ class JKKtModifierImpl(override val type: JKKtModifier.KtModifierType) : JKKtMod
|
|||||||
}
|
}
|
||||||
|
|
||||||
class JKKtAlsoCallExpressionImpl(
|
class JKKtAlsoCallExpressionImpl(
|
||||||
override val statement: JKStatement, override val identifier: JKMethodSymbol, override val parameterName: String = "it"
|
statement: JKStatement, override val identifier: JKMethodSymbol, override val parameterName: String = "it"
|
||||||
) : JKKtAlsoCallExpression, JKBranchElementBase() {
|
) : JKKtAlsoCallExpression, JKBranchElementBase() {
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitKtAlsoCallExpression(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitKtAlsoCallExpression(this, data)
|
||||||
|
override var statement
|
||||||
|
get() = arguments.expressions.first().cast<JKLambdaExpressionImpl>().statement
|
||||||
|
set(it) {
|
||||||
|
arguments.expressions.first().cast<JKLambdaExpressionImpl>().statement = it
|
||||||
|
}
|
||||||
val parameter
|
val parameter
|
||||||
get() = arguments.expressions.first().cast<JKLambdaExpression>().parameters.first()
|
get() = arguments.expressions.first().cast<JKLambdaExpression>().parameters.first()
|
||||||
override var arguments: JKExpressionList by child(
|
override var arguments: JKExpressionList by child(
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ interface JKJavaMethod : JKMethod, JKBranchElement {
|
|||||||
|
|
||||||
interface JKJavaMethodCallExpression : JKMethodCallExpression
|
interface JKJavaMethodCallExpression : JKMethodCallExpression
|
||||||
|
|
||||||
interface JKJavaFieldAccessExpression : JKFieldAccessExpression
|
|
||||||
|
|
||||||
interface JKJavaNewExpression : JKExpression {
|
interface JKJavaNewExpression : JKExpression {
|
||||||
val constructorSymbol: JKMethodSymbol
|
val constructorSymbol: JKMethodSymbol
|
||||||
val arguments: JKExpressionList
|
val arguments: JKExpressionList
|
||||||
|
|||||||
@@ -52,10 +52,8 @@ interface JKKtModifier : JKModifier {
|
|||||||
interface JKKtMethodCallExpression : JKMethodCallExpression
|
interface JKKtMethodCallExpression : JKMethodCallExpression
|
||||||
|
|
||||||
interface JKKtAlsoCallExpression : JKKtMethodCallExpression {
|
interface JKKtAlsoCallExpression : JKKtMethodCallExpression {
|
||||||
val statement: JKStatement
|
var statement: JKStatement
|
||||||
val parameterName: String
|
val parameterName: String
|
||||||
}
|
}
|
||||||
|
|
||||||
interface JKKtFieldAccessExpression : JKFieldAccessExpression
|
|
||||||
|
|
||||||
interface JKKtLiteralExpression : JKLiteralExpression
|
interface JKKtLiteralExpression : JKLiteralExpression
|
||||||
@@ -59,7 +59,6 @@ interface JKVisitor<out R, in D> {
|
|||||||
fun visitJavaField(javaField: JKJavaField, data: D): R = visitField(javaField, data)
|
fun visitJavaField(javaField: JKJavaField, data: D): R = visitField(javaField, data)
|
||||||
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitMethod(javaMethod, data)
|
fun visitJavaMethod(javaMethod: JKJavaMethod, data: D): R = visitMethod(javaMethod, data)
|
||||||
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): R = visitMethodCallExpression(javaMethodCallExpression, data)
|
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: D): R = visitMethodCallExpression(javaMethodCallExpression, data)
|
||||||
fun visitJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression, data: D): R = visitFieldAccessExpression(javaFieldAccessExpression, data)
|
|
||||||
fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: D): R = visitExpression(javaNewExpression, data)
|
fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: D): R = visitExpression(javaNewExpression, data)
|
||||||
fun visitJavaDefaultNewExpression(javaDefaultNewExpression: JKJavaDefaultNewExpression, data: D): R = visitExpression(javaDefaultNewExpression, data)
|
fun visitJavaDefaultNewExpression(javaDefaultNewExpression: JKJavaDefaultNewExpression, data: D): R = visitExpression(javaDefaultNewExpression, data)
|
||||||
fun visitJavaModifier(javaModifier: JKJavaModifier, data: D): R = visitModifier(javaModifier, data)
|
fun visitJavaModifier(javaModifier: JKJavaModifier, data: D): R = visitModifier(javaModifier, data)
|
||||||
@@ -81,6 +80,5 @@ interface JKVisitor<out R, in D> {
|
|||||||
fun visitKtModifier(ktModifier: JKKtModifier, data: D): R = visitModifier(ktModifier, data)
|
fun visitKtModifier(ktModifier: JKKtModifier, data: D): R = visitModifier(ktModifier, data)
|
||||||
fun visitKtMethodCallExpression(ktMethodCallExpression: JKKtMethodCallExpression, data: D): R = visitMethodCallExpression(ktMethodCallExpression, data)
|
fun visitKtMethodCallExpression(ktMethodCallExpression: JKKtMethodCallExpression, data: D): R = visitMethodCallExpression(ktMethodCallExpression, data)
|
||||||
fun visitKtAlsoCallExpression(ktAlsoCallExpression: JKKtAlsoCallExpression, data: D): R = visitKtMethodCallExpression(ktAlsoCallExpression, data)
|
fun visitKtAlsoCallExpression(ktAlsoCallExpression: JKKtAlsoCallExpression, data: D): R = visitKtMethodCallExpression(ktAlsoCallExpression, data)
|
||||||
fun visitKtFieldAccessExpression(ktFieldAccessExpression: JKKtFieldAccessExpression, data: D): R = visitFieldAccessExpression(ktFieldAccessExpression, data)
|
|
||||||
fun visitKtLiteralExpression(ktLiteralExpression: JKKtLiteralExpression, data: D): R = visitLiteralExpression(ktLiteralExpression, data)
|
fun visitKtLiteralExpression(ktLiteralExpression: JKKtLiteralExpression, data: D): R = visitLiteralExpression(ktLiteralExpression, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,8 +115,6 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
|||||||
override fun visitJavaMethod(javaMethod: JKJavaMethod, data: Nothing?) = visitJavaMethod(javaMethod)
|
override fun visitJavaMethod(javaMethod: JKJavaMethod, data: Nothing?) = visitJavaMethod(javaMethod)
|
||||||
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression) = visitMethodCallExpression(javaMethodCallExpression, null)
|
fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression) = visitMethodCallExpression(javaMethodCallExpression, null)
|
||||||
override fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: Nothing?) = visitJavaMethodCallExpression(javaMethodCallExpression)
|
override fun visitJavaMethodCallExpression(javaMethodCallExpression: JKJavaMethodCallExpression, data: Nothing?) = visitJavaMethodCallExpression(javaMethodCallExpression)
|
||||||
fun visitJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression) = visitFieldAccessExpression(javaFieldAccessExpression, null)
|
|
||||||
override fun visitJavaFieldAccessExpression(javaFieldAccessExpression: JKJavaFieldAccessExpression, data: Nothing?) = visitJavaFieldAccessExpression(javaFieldAccessExpression)
|
|
||||||
fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression) = visitExpression(javaNewExpression, null)
|
fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression) = visitExpression(javaNewExpression, null)
|
||||||
override fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: Nothing?) = visitJavaNewExpression(javaNewExpression)
|
override fun visitJavaNewExpression(javaNewExpression: JKJavaNewExpression, data: Nothing?) = visitJavaNewExpression(javaNewExpression)
|
||||||
fun visitJavaDefaultNewExpression(javaDefaultNewExpression: JKJavaDefaultNewExpression) = visitExpression(javaDefaultNewExpression, null)
|
fun visitJavaDefaultNewExpression(javaDefaultNewExpression: JKJavaDefaultNewExpression) = visitExpression(javaDefaultNewExpression, null)
|
||||||
@@ -159,8 +157,6 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
|||||||
override fun visitKtMethodCallExpression(ktMethodCallExpression: JKKtMethodCallExpression, data: Nothing?) = visitKtMethodCallExpression(ktMethodCallExpression)
|
override fun visitKtMethodCallExpression(ktMethodCallExpression: JKKtMethodCallExpression, data: Nothing?) = visitKtMethodCallExpression(ktMethodCallExpression)
|
||||||
fun visitKtAlsoCallExpression(ktAlsoCallExpression: JKKtAlsoCallExpression) = visitKtMethodCallExpression(ktAlsoCallExpression, null)
|
fun visitKtAlsoCallExpression(ktAlsoCallExpression: JKKtAlsoCallExpression) = visitKtMethodCallExpression(ktAlsoCallExpression, null)
|
||||||
override fun visitKtAlsoCallExpression(ktAlsoCallExpression: JKKtAlsoCallExpression, data: Nothing?) = visitKtAlsoCallExpression(ktAlsoCallExpression)
|
override fun visitKtAlsoCallExpression(ktAlsoCallExpression: JKKtAlsoCallExpression, data: Nothing?) = visitKtAlsoCallExpression(ktAlsoCallExpression)
|
||||||
fun visitKtFieldAccessExpression(ktFieldAccessExpression: JKKtFieldAccessExpression) = visitFieldAccessExpression(ktFieldAccessExpression, null)
|
|
||||||
override fun visitKtFieldAccessExpression(ktFieldAccessExpression: JKKtFieldAccessExpression, data: Nothing?) = visitKtFieldAccessExpression(ktFieldAccessExpression)
|
|
||||||
fun visitKtLiteralExpression(ktLiteralExpression: JKKtLiteralExpression) = visitLiteralExpression(ktLiteralExpression, null)
|
fun visitKtLiteralExpression(ktLiteralExpression: JKKtLiteralExpression) = visitLiteralExpression(ktLiteralExpression, null)
|
||||||
override fun visitKtLiteralExpression(ktLiteralExpression: JKKtLiteralExpression, data: Nothing?) = visitKtLiteralExpression(ktLiteralExpression)
|
override fun visitKtLiteralExpression(ktLiteralExpression: JKKtLiteralExpression, data: Nothing?) = visitKtLiteralExpression(ktLiteralExpression)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user