diff --git a/j2k/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.kt b/j2k/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.kt index 984e59729f6..6fe06c0abbd 100644 --- a/j2k/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.kt +++ b/j2k/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.kt @@ -246,22 +246,6 @@ open class StatementVisitor(public val converter: Converter) : JavaElementVisito var wrapResultStatement: (Expression) -> Statement = { it } var converterForBody = converter - val returns = collectReturns(tryBlock) - //TODO: support other returns when non-local returns supported by Kotlin - if (returns.size == 1 && returns.single() == tryBlock!!.getStatements().last()) { - wrapResultStatement = { ReturnStatement(it).assignPrototype(returns.single()) } - converterForBody = converter.withStatementVisitor { object : StatementVisitor(it) { - override fun visitReturnStatement(statement: PsiReturnStatement) { - if (statement == returns.single()) { - result = converter.convertExpression(statement.getReturnValue(), tryBlock!!.getContainingMethod()?.getReturnType()) - } - else { - super.visitReturnStatement(statement) - } - } - }} - } - var block = converterForBody.convertBlock(tryBlock) var expression: Expression = Expression.Empty for (variable in resourceVariables.reverse()) { diff --git a/j2k/tests/testData/ast/tryWithResource/WithReturn.java.todo b/j2k/tests/testData/ast/tryWithResource/WithReturn.java.todo deleted file mode 100644 index 27183fa29bc..00000000000 --- a/j2k/tests/testData/ast/tryWithResource/WithReturn.java.todo +++ /dev/null @@ -1,17 +0,0 @@ -//file -import java.io.*; - -public class C { - int foo() { - try(InputStream stream = new FileInputStream("foo")) { - while(true) { - int c = stream.read(); - if (c < 0 || c > 127) return c; - } - } - catch (IOException e) { - System.out.println(e); - return -1; - } - } -} diff --git a/j2k/tests/testData/ast/tryWithResource/WithReturnAtEnd.kt b/j2k/tests/testData/ast/tryWithResource/WithReturnAtEnd.kt index 381c88b9fe6..1022d130a81 100644 --- a/j2k/tests/testData/ast/tryWithResource/WithReturnAtEnd.kt +++ b/j2k/tests/testData/ast/tryWithResource/WithReturnAtEnd.kt @@ -3,10 +3,10 @@ import java.io.* public class C { fun foo(): Int { try { - return FileInputStream("foo").use { stream -> + FileInputStream("foo").use { stream -> // reading something val c = stream.read() - c + return c } } catch (e: IOException) { System.out.println(e) diff --git a/j2k/tests/testData/ast/tryWithResource/WithReturnInAnonymousClass2.kt b/j2k/tests/testData/ast/tryWithResource/WithReturnInAnonymousClass2.kt index 32860dfb2b3..5865a832183 100644 --- a/j2k/tests/testData/ast/tryWithResource/WithReturnInAnonymousClass2.kt +++ b/j2k/tests/testData/ast/tryWithResource/WithReturnInAnonymousClass2.kt @@ -8,8 +8,8 @@ trait I { public class C { throws(javaClass()) fun foo(): Int { - return FileInputStream("foo").use { stream -> - bar(object : I { + FileInputStream("foo").use { stream -> + return bar(object : I { throws(javaClass()) override fun doIt(stream: InputStream): Int { return stream.available()