From a88e9666e40d355f218dd72050f797c5095738c4 Mon Sep 17 00:00:00 2001 From: Michael Bogdanov Date: Mon, 13 Oct 2014 11:22:22 +0400 Subject: [PATCH] As designed KT-5930: Wrong execution order in case of extension function #KT-5930 As Designed --- .../box/extensionFunctions/executionOrder.kt | 19 +++++++++++++++++++ .../BlackBoxCodegenTestGenerated.java | 6 ++++++ 2 files changed, 25 insertions(+) create mode 100644 compiler/testData/codegen/box/extensionFunctions/executionOrder.kt diff --git a/compiler/testData/codegen/box/extensionFunctions/executionOrder.kt b/compiler/testData/codegen/box/extensionFunctions/executionOrder.kt new file mode 100644 index 00000000000..38cdf5f0d5b --- /dev/null +++ b/compiler/testData/codegen/box/extensionFunctions/executionOrder.kt @@ -0,0 +1,19 @@ +var result = "" + +fun getReceiver() : Int { + result += "getReceiver->" + return 1 +} + +fun getFun(b : Int.(Int)->Unit): Int.(Int)->Unit { + result += "getFun()->" + return b +} + +fun box(): String { + getReceiver().(getFun({ result +="End" }))(1) + + if(result != "getFun()->getReceiver->End") return "fail $result" + + return "OK" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index 8c35d924863..99f1486e3de 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -2765,6 +2765,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("executionOrder.kt") + public void testExecutionOrder() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/extensionFunctions/executionOrder.kt"); + doTest(fileName); + } + @TestMetadata("kt1061.kt") public void testKt1061() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/extensionFunctions/kt1061.kt");