From dcb95fc5acab707c2dbb65c726274cd0907c8adf Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Fri, 29 Mar 2013 13:10:31 +0400 Subject: [PATCH] Fixed priorities for synthetic functions. --- .../lang/resolve/calls/tasks/TaskPrioritizer.java | 2 +- compiler/testData/codegen/box/sam/syntheticVsReal.kt | 12 ++++++++++++ .../generated/BlackBoxCodegenTestGenerated.java | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/codegen/box/sam/syntheticVsReal.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java index 99f118cd3ae..7d47abee921 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java @@ -89,7 +89,7 @@ public class TaskPrioritizer { ResolutionTaskHolder.PriorityProvider> visibleStrategy = new ResolutionTaskHolder.PriorityProvider>() { @Override public int getPriority(ResolutionCandidate call) { - return (isVisible(call) ? 2 : 0) + (isSynthesized(call) ? 1 : 0); + return (isVisible(call) ? 2 : 0) + (isSynthesized(call) ? 0 : 1); } @Override diff --git a/compiler/testData/codegen/box/sam/syntheticVsReal.kt b/compiler/testData/codegen/box/sam/syntheticVsReal.kt new file mode 100644 index 00000000000..59b529e433b --- /dev/null +++ b/compiler/testData/codegen/box/sam/syntheticVsReal.kt @@ -0,0 +1,12 @@ +var global = "" + +fun Runnable(f: () -> Unit) = object : Runnable { + public override fun run() { + global = "OK" + } +} + +fun box(): String { + Runnable { global = "FAIL" } .run() + return global +} \ 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 7cb8b8b6854..f806455fadc 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -3194,6 +3194,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest("compiler/testData/codegen/box/sam/runnableAccessingClosure2.kt"); } + @TestMetadata("syntheticVsReal.kt") + public void testSyntheticVsReal() throws Exception { + doTest("compiler/testData/codegen/box/sam/syntheticVsReal.kt"); + } + } @TestMetadata("compiler/testData/codegen/box/strings")