From 18c2b34257c3353caf350cb595c45732da6906c3 Mon Sep 17 00:00:00 2001 From: Sergey Ignatov Date: Mon, 31 Oct 2011 16:56:17 +0400 Subject: [PATCH] ThrowStatement added --- .../jetbrains/jet/j2k/ast/ThrowStatement.java | 20 +++++++++++++++++++ .../jet/j2k/visitors/StatementVisitor.java | 5 +++-- .../jet/j2k/ast/ThrowStatementTest.java | 14 +++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 src/org/jetbrains/jet/j2k/ast/ThrowStatement.java create mode 100644 test/org/jetbrains/jet/j2k/ast/ThrowStatementTest.java diff --git a/src/org/jetbrains/jet/j2k/ast/ThrowStatement.java b/src/org/jetbrains/jet/j2k/ast/ThrowStatement.java new file mode 100644 index 00000000000..298650d1f3c --- /dev/null +++ b/src/org/jetbrains/jet/j2k/ast/ThrowStatement.java @@ -0,0 +1,20 @@ +package org.jetbrains.jet.j2k.ast; + +import org.jetbrains.annotations.NotNull; + +/** + * @author ignatov + */ +public class ThrowStatement extends Expression { + private final Expression myExpression; + + public ThrowStatement(Expression expression) { + myExpression = expression; + } + + @NotNull + @Override + public String toKotlin() { + return "throw" + SPACE + myExpression.toKotlin(); + } +} diff --git a/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java b/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java index 56ca0ee5f93..9e35b47c617 100644 --- a/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java @@ -25,7 +25,6 @@ public class StatementVisitor extends ElementVisitor implements Visitor { @Override public void visitAssertStatement(PsiAssertStatement statement) { super.visitAssertStatement(statement); - myResult = new AssertStatement( expressionToExpression(statement.getAssertCondition()), expressionToExpression(statement.getAssertDescription()) @@ -96,7 +95,6 @@ public class StatementVisitor extends ElementVisitor implements Visitor { super.visitExpressionListStatement(statement); myResult = new ExpressionListStatement(expressionsToExpressionList(statement.getExpressionList().getExpressions())); - } @Override @@ -179,6 +177,9 @@ public class StatementVisitor extends ElementVisitor implements Visitor { @Override public void visitThrowStatement(PsiThrowStatement statement) { super.visitThrowStatement(statement); + myResult = new ThrowStatement( + expressionToExpression(statement.getException()) + ); } @Override diff --git a/test/org/jetbrains/jet/j2k/ast/ThrowStatementTest.java b/test/org/jetbrains/jet/j2k/ast/ThrowStatementTest.java new file mode 100644 index 00000000000..570c7b360ee --- /dev/null +++ b/test/org/jetbrains/jet/j2k/ast/ThrowStatementTest.java @@ -0,0 +1,14 @@ +package org.jetbrains.jet.j2k.ast; + +import junit.framework.Assert; +import org.jetbrains.jet.j2k.JetTestCaseBase; + +/** + * @author ignatov + */ +public class ThrowStatementTest extends JetTestCaseBase { + public void testSimpleThrowStatement() throws Exception { + Assert.assertEquals( + statementToSingleLineKotlin("throw exception;"), "throw exception"); + } +}