conditional expression added
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
package org.jetbrains.jet.j2k.ast;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author ignatov
|
||||
*/
|
||||
public class IfStatement extends Statement {
|
||||
public class IfStatement extends Expression {
|
||||
private final Expression myCondition;
|
||||
private final Statement myThenStatement;
|
||||
private final Statement myElseStatement;
|
||||
@@ -14,6 +16,7 @@ public class IfStatement extends Statement {
|
||||
myElseStatement = elseStatement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String toKotlin() {
|
||||
String result = "if" + SPACE + "(" + myCondition.toKotlin() + ")" + N + myThenStatement.toKotlin() + N;
|
||||
|
||||
@@ -112,6 +112,13 @@ public class ExpressionVisitor extends StatementVisitor implements Visitor {
|
||||
@Override
|
||||
public void visitConditionalExpression(PsiConditionalExpression expression) {
|
||||
super.visitConditionalExpression(expression);
|
||||
myResult = new ParenthesizedExpression(
|
||||
new IfStatement(
|
||||
expressionToExpression(expression.getCondition()),
|
||||
expressionToExpression(expression.getThenExpression()),
|
||||
expressionToExpression(expression.getElseExpression())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.jetbrains.jet.j2k.ast;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import org.jetbrains.jet.j2k.JetTestCaseBase;
|
||||
|
||||
/**
|
||||
* @author ignatov
|
||||
*/
|
||||
public class ConditionalExpressionTest extends JetTestCaseBase {
|
||||
public void testSimpleConditionalExpression() throws Exception {
|
||||
Assert.assertEquals(
|
||||
expressionToKotlin("a.isEmpty() ? 0 : 1"),
|
||||
"(if (a.isEmpty())\n" +
|
||||
"0\n" +
|
||||
"else\n" +
|
||||
"1)"
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user