diff --git a/src/org/jetbrains/jet/j2k/ast/CaseContainer.java b/src/org/jetbrains/jet/j2k/ast/CaseContainer.java index 73d2e122547..b96b7be351f 100644 --- a/src/org/jetbrains/jet/j2k/ast/CaseContainer.java +++ b/src/org/jetbrains/jet/j2k/ast/CaseContainer.java @@ -17,7 +17,7 @@ public class CaseContainer extends Statement { myCaseStatement = caseStatement; List newStatements = new LinkedList(); for (Statement s : statements) - if (s.getKind() != Kind.BREAK && s.getKind() != Kind.CONTINUE ) + if (s.getKind() != Kind.BREAK && s.getKind() != Kind.CONTINUE) newStatements.add(s); myBlock = new Block(newStatements); } diff --git a/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java b/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java index 1d7e4d369d7..be46b12fae8 100644 --- a/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java +++ b/src/org/jetbrains/jet/j2k/visitors/StatementVisitor.java @@ -261,7 +261,7 @@ public class StatementVisitor extends ElementVisitor { List result = new LinkedList(); for (int i = start; i < allStatements.size(); i++) { PsiStatement s = allStatements.get(i); - if (s instanceof PsiBreakStatement) + if (s instanceof PsiBreakStatement || s instanceof PsiReturnStatement) return result; if (!(s instanceof PsiSwitchLabelStatement)) result.add(s); diff --git a/testData/ast/issues/file/kt-879.jav b/testData/ast/issues/file/kt-879.jav new file mode 100644 index 00000000000..bd55559a3d8 --- /dev/null +++ b/testData/ast/issues/file/kt-879.jav @@ -0,0 +1,16 @@ +class Test { + public static int getInt(int i) { + switch (i) { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + case 3: + return 3; + default: + return -1; + } + } +} \ No newline at end of file diff --git a/testData/ast/issues/file/kt-879.kt b/testData/ast/issues/file/kt-879.kt new file mode 100644 index 00000000000..c017138ef1f --- /dev/null +++ b/testData/ast/issues/file/kt-879.kt @@ -0,0 +1,23 @@ +open class Test() { +class object { +open public fun getInt(i : Int) : Int { +when (i) { +0 -> { +return 0 +} +1 -> { +return 1 +} +2 -> { +return 2 +} +3 -> { +return 3 +} +else -> { +return (-1) +} +} +} +} +} \ No newline at end of file