From 4e6ec64d9a0ad049cad0faf0d6f93cf4ae51aeef Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 5 Jun 2013 20:29:24 +0400 Subject: [PATCH] changed resolution candidates order for foo() first try 'this.foo()', then 'foo()' --- .../jet/lang/resolve/calls/tasks/TaskPrioritizer.java | 2 +- .../preferImplicitThisToNoReceiver.resolve | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/resolve/candidatesPriority/preferImplicitThisToNoReceiver.resolve 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 2dc46115b2d..20272763406 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 @@ -181,11 +181,11 @@ public class TaskPrioritizer { TaskPrioritizer.splitLexicallyLocalDescriptors(functions, scope.getContainingDeclaration(), locals, nonlocals); result.addLocalExtensions(locals); - result.addNonLocalExtensions(nonlocals); for (ReceiverValue implicitReceiver : implicitReceivers) { doComputeTasks(scope, implicitReceiver, name, result, context, callableDescriptorCollector); } + result.addNonLocalExtensions(nonlocals); } } diff --git a/compiler/testData/resolve/candidatesPriority/preferImplicitThisToNoReceiver.resolve b/compiler/testData/resolve/candidatesPriority/preferImplicitThisToNoReceiver.resolve new file mode 100644 index 00000000000..b23a3255a79 --- /dev/null +++ b/compiler/testData/resolve/candidatesPriority/preferImplicitThisToNoReceiver.resolve @@ -0,0 +1,6 @@ +fun ~A.foo~A.foo() = 1 +fun foo() = 2 + +class A { + fun test() = `A.foo`foo() +} \ No newline at end of file