From 91aeeb20e8f0104b1fbec46637f73e661613f8de Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Wed, 14 Dec 2016 15:53:18 +0300 Subject: [PATCH] JS: add test to prove that anonymous function that declares lambda is translated correctly. See KT-11589 --- .../kotlin/js/test/semantics/BoxJsTestGenerated.java | 6 ++++++ .../box/expression/function/anonymousWithLambda.kt | 7 +++++++ 2 files changed, 13 insertions(+) create mode 100644 js/js.translator/testData/box/expression/function/anonymousWithLambda.kt diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index 835e3772f7e..f0c07695d6b 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -2233,6 +2233,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/expression/function"), Pattern.compile("^([^_](.+))\\.kt$"), TargetBackend.JS, true); } + @TestMetadata("anonymousWithLambda.kt") + public void testAnonymousWithLambda() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/anonymousWithLambda.kt"); + doTest(fileName); + } + @TestMetadata("callFunInInit.kt") public void testCallFunInInit() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/expression/function/callFunInInit.kt"); diff --git a/js/js.translator/testData/box/expression/function/anonymousWithLambda.kt b/js/js.translator/testData/box/expression/function/anonymousWithLambda.kt new file mode 100644 index 00000000000..e84b1353806 --- /dev/null +++ b/js/js.translator/testData/box/expression/function/anonymousWithLambda.kt @@ -0,0 +1,7 @@ +fun box(): String { + val a = (fun(): String { + val o = { "O" } + return o() + "K" + }) + return a() +} \ No newline at end of file