conditional expression added
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
package org.jetbrains.jet.j2k.ast;
|
package org.jetbrains.jet.j2k.ast;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ignatov
|
* @author ignatov
|
||||||
*/
|
*/
|
||||||
public class IfStatement extends Statement {
|
public class IfStatement extends Expression {
|
||||||
private final Expression myCondition;
|
private final Expression myCondition;
|
||||||
private final Statement myThenStatement;
|
private final Statement myThenStatement;
|
||||||
private final Statement myElseStatement;
|
private final Statement myElseStatement;
|
||||||
@@ -14,6 +16,7 @@ public class IfStatement extends Statement {
|
|||||||
myElseStatement = elseStatement;
|
myElseStatement = elseStatement;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String toKotlin() {
|
public String toKotlin() {
|
||||||
String result = "if" + SPACE + "(" + myCondition.toKotlin() + ")" + N + myThenStatement.toKotlin() + N;
|
String result = "if" + SPACE + "(" + myCondition.toKotlin() + ")" + N + myThenStatement.toKotlin() + N;
|
||||||
|
|||||||
@@ -112,6 +112,13 @@ public class ExpressionVisitor extends StatementVisitor implements Visitor {
|
|||||||
@Override
|
@Override
|
||||||
public void visitConditionalExpression(PsiConditionalExpression expression) {
|
public void visitConditionalExpression(PsiConditionalExpression expression) {
|
||||||
super.visitConditionalExpression(expression);
|
super.visitConditionalExpression(expression);
|
||||||
|
myResult = new ParenthesizedExpression(
|
||||||
|
new IfStatement(
|
||||||
|
expressionToExpression(expression.getCondition()),
|
||||||
|
expressionToExpression(expression.getThenExpression()),
|
||||||
|
expressionToExpression(expression.getElseExpression())
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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