From c5eaea846d608923892c8db9e23212785c8c46b7 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Thu, 19 May 2016 19:14:49 +0300 Subject: [PATCH] KT-7424: add test to show that inlining works for anonymous functions --- .../js/test/semantics/InlineJsTestGenerated.java | 6 ++++++ .../testData/inline/cases/anonymousFunction.kt | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 js/js.translator/testData/inline/cases/anonymousFunction.kt diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineJsTestGenerated.java index 98e88c19926..256b8c5171c 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/InlineJsTestGenerated.java @@ -35,6 +35,12 @@ public class InlineJsTestGenerated extends AbstractInlineJsTest { KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/inline/cases"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("anonymousFunction.kt") + public void testAnonymousFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inline/cases/anonymousFunction.kt"); + doTest(fileName); + } + @TestMetadata("anonymousObjectInlineMethod.kt") public void testAnonymousObjectInlineMethod() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/inline/cases/anonymousObjectInlineMethod.kt"); diff --git a/js/js.translator/testData/inline/cases/anonymousFunction.kt b/js/js.translator/testData/inline/cases/anonymousFunction.kt new file mode 100644 index 00000000000..f5616829e9f --- /dev/null +++ b/js/js.translator/testData/inline/cases/anonymousFunction.kt @@ -0,0 +1,12 @@ +package foo + +// CHECK_CONTAINS_NO_CALLS: test + +inline fun block(f: () -> T): T = f() + +fun test() = block(fun(): Int { return 23 }) + +fun box(): String { + assertEquals(23, test()) + return "OK" +}