ArrayAccessExpression added

This commit is contained in:
Sergey Ignatov
2011-10-31 18:15:26 +04:00
parent f863722ccb
commit e805b22325
3 changed files with 47 additions and 0 deletions
@@ -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)]");
}
}