From 8497931455797c945a3244943e79018e00642191 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Wed, 17 Feb 2016 13:58:12 +0300 Subject: [PATCH] #EA-79158 Fix translation of empty 'when' statement --- .../org/jetbrains/kotlin/js/test/semantics/WhenTest.java | 4 ++++ .../kotlin/js/translate/expression/WhenTranslator.java | 4 ++-- js/js.translator/testData/expression/when/cases/empty.kt | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 js/js.translator/testData/expression/when/cases/empty.kt diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhenTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhenTest.java index 82af76b750b..6bbdee65b4b 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhenTest.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/WhenTest.java @@ -133,4 +133,8 @@ public final class WhenTest extends AbstractExpressionTest { public void testWhenStatementWithRangeClause() throws Exception { checkFooBoxIsOk(); } + + public void testEmpty() throws Exception { + checkFooBoxIsOk(); + } } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java index 425f6d72674..11d1a52aefe 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/expression/WhenTranslator.java @@ -67,7 +67,7 @@ public final class WhenTranslator extends AbstractTranslator { } } - private JsStatement translate() { + private JsNode translate() { if (expressionToMatch != null && JsAstUtils.isEmptyExpression(expressionToMatch)) { return JsEmpty.INSTANCE; } @@ -100,7 +100,7 @@ public final class WhenTranslator extends AbstractTranslator { currentIf = nextIf; } } - return resultIf; + return resultIf != null ? resultIf : context().getEmptyExpression(); } @NotNull diff --git a/js/js.translator/testData/expression/when/cases/empty.kt b/js/js.translator/testData/expression/when/cases/empty.kt new file mode 100644 index 00000000000..3d8070629ab --- /dev/null +++ b/js/js.translator/testData/expression/when/cases/empty.kt @@ -0,0 +1,6 @@ +package foo + +fun box(): String { + when {} + return "OK" +} \ No newline at end of file