ArrayAccessExpression added
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package org.jetbrains.jet.j2k.ast;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author ignatov
|
||||
*/
|
||||
public class ArrayAccessExpression extends Expression {
|
||||
private final Expression myExpression;
|
||||
private final Expression myIndex;
|
||||
|
||||
public ArrayAccessExpression(Expression expression, Expression index) {
|
||||
myExpression = expression;
|
||||
myIndex = index;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String toKotlin() {
|
||||
return myExpression.toKotlin() + "[" + myIndex.toKotlin() + "]";
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,10 @@ public class ExpressionVisitor extends StatementVisitor implements Visitor {
|
||||
@Override
|
||||
public void visitArrayAccessExpression(PsiArrayAccessExpression expression) {
|
||||
super.visitArrayAccessExpression(expression);
|
||||
myResult = new ArrayAccessExpression(
|
||||
expressionToExpression(expression.getArrayExpression()),
|
||||
expressionToExpression(expression.getIndexExpression())
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.jetbrains.jet.j2k.ast;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import org.jetbrains.jet.j2k.JetTestCaseBase;
|
||||
|
||||
/**
|
||||
* @author ignatov
|
||||
*/
|
||||
public class ArrayAccessExpressionTest extends JetTestCaseBase {
|
||||
public void testIntIndex() throws Exception {
|
||||
Assert.assertEquals(expressionToSingleLineKotlin("myArray[10]"), "myArray[10]");
|
||||
}
|
||||
|
||||
public void testVariableIndex() throws Exception {
|
||||
Assert.assertEquals(expressionToSingleLineKotlin("myArray[i]"), "myArray[i]");
|
||||
}
|
||||
|
||||
public void testExpressionIndex() throws Exception {
|
||||
Assert.assertEquals(expressionToSingleLineKotlin("myArray[myLibrary.calculateIndex(100)]"), "myArray[myLibrary.calculateIndex(100)]");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user