New J2K: Fix array assignment.

This commit is contained in:
Dimach
2018-06-29 15:11:56 +03:00
committed by Ilya Kirillov
parent 4a0df846de
commit 795bfa4b2f
5 changed files with 9 additions and 11 deletions
@@ -21,7 +21,6 @@ import com.intellij.psi.*
import com.intellij.psi.impl.source.tree.ChildRole
import com.intellij.psi.impl.source.tree.java.PsiLiteralExpressionImpl
import com.intellij.psi.impl.source.tree.java.PsiNewExpressionImpl
import com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl
import org.jetbrains.kotlin.j2k.tree.*
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.*
import org.jetbrains.kotlin.j2k.tree.impl.*
@@ -75,7 +74,7 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
fun PsiAssignmentExpression.toJK(): JKJavaAssignmentExpression {
return JKJavaAssignmentExpressionImpl(
(lExpression.toJK() as? JKFieldAccessExpression ?: error("Its possible?")).identifier,
lExpression.toJK() as? JKAssignableExpression ?: error("Its possible?"),
rExpression.toJK(),
operationSign.toJK()
)
@@ -194,7 +194,7 @@ class JKJavaPolyadicExpressionImpl(operands: List<JKExpression>, override var to
}
class JKJavaAssignmentExpressionImpl(
override var field: JKFieldSymbol,
override var field: JKAssignableExpression,
expression: JKExpression,
override var operator: JKOperator
) : JKBranchElementBase(), JKJavaAssignmentExpression {
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.j2k.tree
import org.jetbrains.kotlin.j2k.tree.impl.JKClassSymbol
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol
import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol
interface JKJavaField : JKField, JKBranchElement
@@ -85,7 +84,7 @@ interface JKJavaPolyadicExpression : JKExpression {
}
interface JKJavaAssignmentExpression : JKExpression, JKBranchElement {
var field: JKFieldSymbol
var field: JKAssignableExpression
var expression: JKExpression
var operator: JKOperator
}
@@ -135,7 +135,7 @@ interface JKMethodCallExpression : JKExpression {
val arguments: JKExpressionList
}
interface JKFieldAccessExpression : JKExpression {
interface JKFieldAccessExpression : JKAssignableExpression {
val identifier: JKFieldSymbol
}
@@ -143,7 +143,7 @@ interface JKClassAccessExpression : JKExpression {
val identifier: JKClassSymbol
}
interface JKArrayAccessExpression : JKExpression {
interface JKArrayAccessExpression : JKAssignableExpression {
val expression: JKExpression
val indexExpression: JKExpression
}
@@ -226,4 +226,6 @@ interface JKIfElseExpression : JKExpression {
var condition: JKExpression
var thenBranch: JKExpression
var elseBranch: JKExpression
}
}
interface JKAssignableExpression : JKExpression
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.j2k.tree
import org.jetbrains.kotlin.j2k.tree.impl.JKFieldSymbol
interface JKKtProperty : JKField {
val getter: JKBlock
val setter: JKBlock
@@ -32,7 +30,7 @@ interface JKKtConstructor : JKDeclaration
interface JKKtPrimaryConstructor : JKKtConstructor
interface JKKtAssignmentStatement : JKStatement{
var field: JKFieldSymbol
var field: JKAssignableExpression
var expression: JKExpression
var operator: JKOperator
}