New J2K: Use binaryExpression instead of operatorExpression
This commit is contained in:
committed by
Ilya Kirillov
parent
84ad58b50b
commit
11da99a1d0
@@ -41,27 +41,30 @@ object ConversionsRunner {
|
|||||||
+ConstructorConversion(context)
|
+ConstructorConversion(context)
|
||||||
+ImplicitInitializerConversion(context)
|
+ImplicitInitializerConversion(context)
|
||||||
+ParameterModificationInMethodCallsConversion(context)
|
+ParameterModificationInMethodCallsConversion(context)
|
||||||
+PrimitiveTypesInitializersConversion(context)
|
|
||||||
+DefaultArgumentsConversion(context)
|
+DefaultArgumentsConversion(context)
|
||||||
+PrintlnConversion(context)
|
+PrintlnConversion(context)
|
||||||
+BlockToRunConversion(context)
|
+BlockToRunConversion(context)
|
||||||
+LowerNullabilityInFunctionParametersConversion(context)
|
+JetbrainsNullableAnnotationsConverter(context)
|
||||||
+PrimaryConstructorDetectConversion(context)
|
+PrimaryConstructorDetectConversion(context)
|
||||||
+InsertDefaultPrimaryConstructorConversion(context)
|
+InsertDefaultPrimaryConstructorConversion(context)
|
||||||
+FieldToPropertyConversion()
|
+FieldToPropertyConversion()
|
||||||
+JavaStandartMethodsConversion(context)
|
+JavaStandartMethodsConversion(context)
|
||||||
+JavaMethodToKotlinFunctionConversion(context)
|
+JavaMethodToKotlinFunctionConversion(context)
|
||||||
+MainFunctionConversion(context)
|
+MainFunctionConversion(context)
|
||||||
+LiteralConversion()
|
|
||||||
+AssertStatementConversion(context)
|
+AssertStatementConversion(context)
|
||||||
+PolyadicExpressionConversion()
|
+PolyadicExpressionConversion(context)
|
||||||
+SwitchStatementConversion(context)
|
+SwitchStatementConversion(context)
|
||||||
+InstanceOfConversion()
|
+LiteralConversion()
|
||||||
+ForConversion(context)
|
+ForConversion(context)
|
||||||
+ForInConversion()
|
+ForInConversion()
|
||||||
+CollectionOperationsConversion(context)
|
+CollectionOperationsConversion(context)
|
||||||
+ArrayOperationsConversion(context)
|
+ArrayOperationsConversion(context)
|
||||||
+TypeMappingConversion(context)
|
+TypeMappingConversion(context)
|
||||||
|
+ImplicitCastsConversion(context)
|
||||||
|
+LowerNullabilityInFunctionParametersConversion(context)
|
||||||
|
+FixNullabilityBySuperFunctionConversion(context)
|
||||||
|
+DefaultNullabilityToNullableConversion()
|
||||||
|
+NullableQualifierConversion(context)
|
||||||
+StringMethodsConversion(context)
|
+StringMethodsConversion(context)
|
||||||
|
|
||||||
//Kotlin --> Kotlin conversions
|
//Kotlin --> Kotlin conversions
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package org.jetbrains.kotlin.j2k
|
package org.jetbrains.kotlin.j2k
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.NewCodeBuilder.ParenthesisKind.*
|
import org.jetbrains.kotlin.j2k.NewCodeBuilder.ParenthesisKind.*
|
||||||
import org.jetbrains.kotlin.j2k.ast.Mutability
|
|
||||||
import org.jetbrains.kotlin.j2k.ast.Nullability
|
import org.jetbrains.kotlin.j2k.ast.Nullability
|
||||||
import org.jetbrains.kotlin.j2k.conversions.parentOfType
|
import org.jetbrains.kotlin.j2k.conversions.parentOfType
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
@@ -345,14 +344,6 @@ class NewCodeBuilder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitKtOperatorExpression(ktOperatorExpression: JKKtOperatorExpression) {
|
|
||||||
ktOperatorExpression.receiver.accept(this)
|
|
||||||
printer.printWithNoIndent(" ")
|
|
||||||
printer.printWithNoIndent(ktOperatorExpression.identifier.name)
|
|
||||||
printer.printWithNoIndent(" ")
|
|
||||||
ktOperatorExpression.argument.accept(this)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitIfElseExpression(ifElseExpression: JKIfElseExpression) {
|
override fun visitIfElseExpression(ifElseExpression: JKIfElseExpression) {
|
||||||
printer.printWithNoIndent("if (")
|
printer.printWithNoIndent("if (")
|
||||||
ifElseExpression.condition.accept(this)
|
ifElseExpression.condition.accept(this)
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.j2k.conversions.multiResolveFqName
|
|||||||
import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
import org.jetbrains.kotlin.j2k.conversions.resolveFqName
|
||||||
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.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
@@ -150,7 +151,7 @@ fun untilToExpression(
|
|||||||
to: JKExpression,
|
to: JKExpression,
|
||||||
conversionContext: ConversionContext,
|
conversionContext: ConversionContext,
|
||||||
psiContext: PsiElement
|
psiContext: PsiElement
|
||||||
): JKKtOperatorExpression =
|
): JKExpression =
|
||||||
rangeExpression(
|
rangeExpression(
|
||||||
from,
|
from,
|
||||||
to,
|
to,
|
||||||
@@ -164,7 +165,7 @@ fun downToExpression(
|
|||||||
to: JKExpression,
|
to: JKExpression,
|
||||||
conversionContext: ConversionContext,
|
conversionContext: ConversionContext,
|
||||||
psiContext: PsiElement
|
psiContext: PsiElement
|
||||||
): JKKtOperatorExpression =
|
): JKExpression =
|
||||||
rangeExpression(
|
rangeExpression(
|
||||||
from,
|
from,
|
||||||
to,
|
to,
|
||||||
@@ -179,11 +180,11 @@ fun rangeExpression(
|
|||||||
operatorName: String,
|
operatorName: String,
|
||||||
conversionContext: ConversionContext,
|
conversionContext: ConversionContext,
|
||||||
psiContext: PsiElement
|
psiContext: PsiElement
|
||||||
): JKKtOperatorExpressionImpl {
|
): JKExpression {
|
||||||
val symbol = conversionContext.symbolProvider.provideDirectSymbol(
|
val symbol = conversionContext.symbolProvider.provideDirectSymbol(
|
||||||
multiResolveFqName(ClassId.fromString("kotlin/ranges/$operatorName"), psiContext).first()
|
multiResolveFqName(ClassId.fromString("kotlin/ranges/$operatorName"), psiContext).first()
|
||||||
) as JKMethodSymbol
|
) as JKMethodSymbol
|
||||||
return JKKtOperatorExpressionImpl(from, symbol, to)
|
return JKBinaryExpressionImpl(from, to, JKKtOperatorImpl(JKKtWordOperatorToken(operatorName), symbol))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun blockStatement(vararg statements: JKStatement) =
|
fun blockStatement(vararg statements: JKStatement) =
|
||||||
|
|||||||
@@ -241,15 +241,6 @@ class JKKtInitDeclarationImpl(block: JKBlock) : JKKtInitDeclaration, JKBranchEle
|
|||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitKtInitDeclaration(this, data)
|
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitKtInitDeclaration(this, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
class JKKtOperatorExpressionImpl(
|
|
||||||
receiver: JKExpression,
|
|
||||||
override var identifier: JKMethodSymbol,
|
|
||||||
argument: JKExpression
|
|
||||||
) : JKKtOperatorExpression, JKBranchElementBase() {
|
|
||||||
override var receiver: JKExpression by child(receiver)
|
|
||||||
override var argument: JKExpression by child(argument)
|
|
||||||
override fun <R, D> accept(visitor: JKVisitor<R, D>, data: D): R = visitor.visitKtOperatorExpression(this, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
class JKKtConvertedFromForLoopSyntheticWhileStatementImpl(
|
class JKKtConvertedFromForLoopSyntheticWhileStatementImpl(
|
||||||
variableDeclaration: JKStatement,
|
variableDeclaration: JKStatement,
|
||||||
|
|||||||
@@ -90,11 +90,6 @@ interface JKKtInitDeclaration : JKDeclaration {
|
|||||||
var block: JKBlock
|
var block: JKBlock
|
||||||
}
|
}
|
||||||
|
|
||||||
interface JKKtOperatorExpression : JKExpression {
|
|
||||||
var receiver: JKExpression
|
|
||||||
var identifier: JKMethodSymbol
|
|
||||||
var argument: JKExpression
|
|
||||||
}
|
|
||||||
|
|
||||||
interface JKKtConvertedFromForLoopSyntheticWhileStatement : JKStatement {
|
interface JKKtConvertedFromForLoopSyntheticWhileStatement : JKStatement {
|
||||||
var variableDeclaration: JKStatement
|
var variableDeclaration: JKStatement
|
||||||
|
|||||||
@@ -118,7 +118,6 @@ interface JKVisitor<out R, in D> {
|
|||||||
fun visitKtValueWhenLabel(ktValueWhenLabel: JKKtValueWhenLabel, data: D): R = visitKtWhenLabel(ktValueWhenLabel, data)
|
fun visitKtValueWhenLabel(ktValueWhenLabel: JKKtValueWhenLabel, data: D): R = visitKtWhenLabel(ktValueWhenLabel, data)
|
||||||
fun visitKtIsExpression(ktIsExpression: JKKtIsExpression, data: D): R = visitExpression(ktIsExpression, data)
|
fun visitKtIsExpression(ktIsExpression: JKKtIsExpression, data: D): R = visitExpression(ktIsExpression, data)
|
||||||
fun visitKtInitDeclaration(ktInitDeclaration: JKKtInitDeclaration, data: D): R = visitDeclaration(ktInitDeclaration, data)
|
fun visitKtInitDeclaration(ktInitDeclaration: JKKtInitDeclaration, data: D): R = visitDeclaration(ktInitDeclaration, data)
|
||||||
fun visitKtOperatorExpression(ktOperatorExpression: JKKtOperatorExpression, data: D): R = visitExpression(ktOperatorExpression, data)
|
|
||||||
fun visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement, data: D): R = visitStatement(ktConvertedFromForLoopSyntheticWhileStatement, data)
|
fun visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement, data: D): R = visitStatement(ktConvertedFromForLoopSyntheticWhileStatement, data)
|
||||||
fun visitKtThrowExpression(ktThrowExpression: JKKtThrowExpression, data: D): R = visitExpression(ktThrowExpression, data)
|
fun visitKtThrowExpression(ktThrowExpression: JKKtThrowExpression, data: D): R = visitExpression(ktThrowExpression, data)
|
||||||
fun visitKtTryExpression(ktTryExpression: JKKtTryExpression, data: D): R = visitExpression(ktTryExpression, data)
|
fun visitKtTryExpression(ktTryExpression: JKKtTryExpression, data: D): R = visitExpression(ktTryExpression, data)
|
||||||
|
|||||||
@@ -233,8 +233,6 @@ interface JKVisitorVoid : JKVisitor<Unit, Nothing?> {
|
|||||||
override fun visitKtIsExpression(ktIsExpression: JKKtIsExpression, data: Nothing?) = visitKtIsExpression(ktIsExpression)
|
override fun visitKtIsExpression(ktIsExpression: JKKtIsExpression, data: Nothing?) = visitKtIsExpression(ktIsExpression)
|
||||||
fun visitKtInitDeclaration(ktInitDeclaration: JKKtInitDeclaration) = visitDeclaration(ktInitDeclaration, null)
|
fun visitKtInitDeclaration(ktInitDeclaration: JKKtInitDeclaration) = visitDeclaration(ktInitDeclaration, null)
|
||||||
override fun visitKtInitDeclaration(ktInitDeclaration: JKKtInitDeclaration, data: Nothing?) = visitKtInitDeclaration(ktInitDeclaration)
|
override fun visitKtInitDeclaration(ktInitDeclaration: JKKtInitDeclaration, data: Nothing?) = visitKtInitDeclaration(ktInitDeclaration)
|
||||||
fun visitKtOperatorExpression(ktOperatorExpression: JKKtOperatorExpression) = visitExpression(ktOperatorExpression, null)
|
|
||||||
override fun visitKtOperatorExpression(ktOperatorExpression: JKKtOperatorExpression, data: Nothing?) = visitKtOperatorExpression(ktOperatorExpression)
|
|
||||||
fun visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement) = visitStatement(ktConvertedFromForLoopSyntheticWhileStatement, null)
|
fun visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement) = visitStatement(ktConvertedFromForLoopSyntheticWhileStatement, null)
|
||||||
override fun visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement, data: Nothing?) = visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement)
|
override fun visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement, data: Nothing?) = visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement)
|
||||||
fun visitKtThrowExpression(ktThrowExpression: JKKtThrowExpression) = visitExpression(ktThrowExpression, null)
|
fun visitKtThrowExpression(ktThrowExpression: JKKtThrowExpression) = visitExpression(ktThrowExpression, null)
|
||||||
|
|||||||
Reference in New Issue
Block a user