diff --git a/src/org/jetbrains/jet/j2k/ast/ArrayInitializerExpression.java b/src/org/jetbrains/jet/j2k/ast/ArrayInitializerExpression.java new file mode 100644 index 00000000000..876dc90670f --- /dev/null +++ b/src/org/jetbrains/jet/j2k/ast/ArrayInitializerExpression.java @@ -0,0 +1,23 @@ +package org.jetbrains.jet.j2k.ast; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.j2k.util.AstUtil; + +import java.util.List; + +/** + * @author ignatov + */ +public class ArrayInitializerExpression extends Expression { + private final List myInitializers; + + public ArrayInitializerExpression(List initializers) { + myInitializers = initializers; + } + + @NotNull + @Override + public String toKotlin() { + return "array" + "(" + AstUtil.joinNodes(myInitializers, COMMA_WITH_SPACE) + ")"; + } +} diff --git a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java index 5053ba41808..cf768e2667f 100644 --- a/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.java @@ -32,6 +32,9 @@ public class ExpressionVisitor extends StatementVisitor implements Visitor { @Override public void visitArrayInitializerExpression(PsiArrayInitializerExpression expression) { super.visitArrayInitializerExpression(expression); + myResult = new ArrayInitializerExpression( + expressionsToExpressionList(expression.getInitializers()) + ); } @Override diff --git a/test/org/jetbrains/jet/j2k/ast/ArrayInitializerExpressionTest.java b/test/org/jetbrains/jet/j2k/ast/ArrayInitializerExpressionTest.java new file mode 100644 index 00000000000..63b8e20f0f8 --- /dev/null +++ b/test/org/jetbrains/jet/j2k/ast/ArrayInitializerExpressionTest.java @@ -0,0 +1,30 @@ +package org.jetbrains.jet.j2k.ast; + +import junit.framework.Assert; +import org.jetbrains.jet.j2k.JetTestCaseBase; + +/** + * @author ignatov + */ +public class ArrayInitializerExpressionTest extends JetTestCaseBase { + public void testOneDim() throws Exception { + Assert.assertEquals( + expressionToSingleLineKotlin("{1, 2, 3};"), + "array(1, 2, 3)" + ); + } + + public void testOneDimWithVariables() throws Exception { + Assert.assertEquals( + expressionToSingleLineKotlin("{a, b, c};"), + "array(a, b, c)" + ); + } + + public void testTwoDim() throws Exception { + Assert.assertEquals( + expressionToSingleLineKotlin("{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };"), + "array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9))" + ); + } +}