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)
|
||||
+ImplicitInitializerConversion(context)
|
||||
+ParameterModificationInMethodCallsConversion(context)
|
||||
+PrimitiveTypesInitializersConversion(context)
|
||||
+DefaultArgumentsConversion(context)
|
||||
+PrintlnConversion(context)
|
||||
+BlockToRunConversion(context)
|
||||
+LowerNullabilityInFunctionParametersConversion(context)
|
||||
+JetbrainsNullableAnnotationsConverter(context)
|
||||
+PrimaryConstructorDetectConversion(context)
|
||||
+InsertDefaultPrimaryConstructorConversion(context)
|
||||
+FieldToPropertyConversion()
|
||||
+JavaStandartMethodsConversion(context)
|
||||
+JavaMethodToKotlinFunctionConversion(context)
|
||||
+MainFunctionConversion(context)
|
||||
+LiteralConversion()
|
||||
+AssertStatementConversion(context)
|
||||
+PolyadicExpressionConversion()
|
||||
+PolyadicExpressionConversion(context)
|
||||
+SwitchStatementConversion(context)
|
||||
+InstanceOfConversion()
|
||||
+LiteralConversion()
|
||||
+ForConversion(context)
|
||||
+ForInConversion()
|
||||
+CollectionOperationsConversion(context)
|
||||
+ArrayOperationsConversion(context)
|
||||
+TypeMappingConversion(context)
|
||||
+ImplicitCastsConversion(context)
|
||||
+LowerNullabilityInFunctionParametersConversion(context)
|
||||
+FixNullabilityBySuperFunctionConversion(context)
|
||||
+DefaultNullabilityToNullableConversion()
|
||||
+NullableQualifierConversion(context)
|
||||
+StringMethodsConversion(context)
|
||||
|
||||
//Kotlin --> Kotlin conversions
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package org.jetbrains.kotlin.j2k
|
||||
|
||||
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.conversions.parentOfType
|
||||
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) {
|
||||
printer.printWithNoIndent("if (")
|
||||
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.tree.*
|
||||
import org.jetbrains.kotlin.j2k.tree.impl.*
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import java.math.BigInteger
|
||||
@@ -150,7 +151,7 @@ fun untilToExpression(
|
||||
to: JKExpression,
|
||||
conversionContext: ConversionContext,
|
||||
psiContext: PsiElement
|
||||
): JKKtOperatorExpression =
|
||||
): JKExpression =
|
||||
rangeExpression(
|
||||
from,
|
||||
to,
|
||||
@@ -164,7 +165,7 @@ fun downToExpression(
|
||||
to: JKExpression,
|
||||
conversionContext: ConversionContext,
|
||||
psiContext: PsiElement
|
||||
): JKKtOperatorExpression =
|
||||
): JKExpression =
|
||||
rangeExpression(
|
||||
from,
|
||||
to,
|
||||
@@ -179,11 +180,11 @@ fun rangeExpression(
|
||||
operatorName: String,
|
||||
conversionContext: ConversionContext,
|
||||
psiContext: PsiElement
|
||||
): JKKtOperatorExpressionImpl {
|
||||
): JKExpression {
|
||||
val symbol = conversionContext.symbolProvider.provideDirectSymbol(
|
||||
multiResolveFqName(ClassId.fromString("kotlin/ranges/$operatorName"), psiContext).first()
|
||||
) as JKMethodSymbol
|
||||
return JKKtOperatorExpressionImpl(from, symbol, to)
|
||||
return JKBinaryExpressionImpl(from, to, JKKtOperatorImpl(JKKtWordOperatorToken(operatorName), symbol))
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
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(
|
||||
variableDeclaration: JKStatement,
|
||||
|
||||
@@ -90,11 +90,6 @@ interface JKKtInitDeclaration : JKDeclaration {
|
||||
var block: JKBlock
|
||||
}
|
||||
|
||||
interface JKKtOperatorExpression : JKExpression {
|
||||
var receiver: JKExpression
|
||||
var identifier: JKMethodSymbol
|
||||
var argument: JKExpression
|
||||
}
|
||||
|
||||
interface JKKtConvertedFromForLoopSyntheticWhileStatement : 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 visitKtIsExpression(ktIsExpression: JKKtIsExpression, data: D): R = visitExpression(ktIsExpression, 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 visitKtThrowExpression(ktThrowExpression: JKKtThrowExpression, data: D): R = visitExpression(ktThrowExpression, 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)
|
||||
fun visitKtInitDeclaration(ktInitDeclaration: JKKtInitDeclaration) = visitDeclaration(ktInitDeclaration, null)
|
||||
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)
|
||||
override fun visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement: JKKtConvertedFromForLoopSyntheticWhileStatement, data: Nothing?) = visitKtConvertedFromForLoopSyntheticWhileStatement(ktConvertedFromForLoopSyntheticWhileStatement)
|
||||
fun visitKtThrowExpression(ktThrowExpression: JKKtThrowExpression) = visitExpression(ktThrowExpression, null)
|
||||
|
||||
Reference in New Issue
Block a user