From d3df04036e1695204a533ca2ba5358f494a69e2b Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Wed, 2 Sep 2015 15:28:53 +0300 Subject: [PATCH] Minor. Removed parameter bindingTrace from CallableDescriptorCollector --- .../tasks/CallableDescriptorCollectors.kt | 57 +++++++++---------- .../resolve/calls/tasks/TaskPrioritizer.kt | 12 ++-- .../resolve/calls/tasks/dynamicCalls.kt | 4 +- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt index f9dec7c1418..b7598d8d41e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/CallableDescriptorCollectors.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.DescriptorUtils.isStaticNestedClass import org.jetbrains.kotlin.resolve.LibrarySourceHacks import org.jetbrains.kotlin.resolve.calls.tasks.createSynthesizedInvokes @@ -35,13 +34,13 @@ import org.jetbrains.kotlin.utils.singletonOrEmptyList public interface CallableDescriptorCollector { - public fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection + public fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation): Collection - public fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection + public fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection - public fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection + public fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection - public fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation, bindingTrace: BindingTrace): Collection + public fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation): Collection } private fun CallableDescriptorCollector.withDefaultFilter() = filtered { !LibrarySourceHacks.shouldSkip(it) } @@ -73,11 +72,11 @@ public fun CallableDescriptorCollectors.filtered(fil private object FunctionCollector : CallableDescriptorCollector { - override fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { + override fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation): Collection { return scope.getFunctions(name, location).filter { it.extensionReceiverParameter == null } + getConstructors(scope, name, location) } - override fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { + override fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { val receiverScope = receiver.memberScope val members = receiverScope.getFunctions(name, location) val constructors = getConstructors(receiverScope, name, location, { !isStaticNestedClass(it) }) @@ -95,11 +94,11 @@ private object FunctionCollector : CallableDescriptorCollector { + override fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { return getConstructors(receiver.memberScope, name, location, { isStaticNestedClass(it) }) } - override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation, bindingTrace: BindingTrace): Collection { + override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation): Collection { val functions = scope.getFunctions(name, location) val (extensions, nonExtensions) = functions.partition { it.extensionReceiverParameter != null } val syntheticExtensions = scope.getSyntheticExtensionFunctions(receiverTypes, name, location) @@ -138,7 +137,7 @@ private object VariableCollector : CallableDescriptorCollector { + override fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation): Collection { val localVariable = scope.getLocalVariable(name) if (localVariable != null) { return setOf(localVariable) @@ -148,18 +147,18 @@ private object VariableCollector : CallableDescriptorCollector { + override fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { val memberScope = receiver.memberScope val properties = memberScope.getProperties(name, location) val fakeDescriptor = getFakeDescriptorForObject(memberScope, name, location) return if (fakeDescriptor != null) properties + fakeDescriptor else properties } - override fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { + override fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { return listOf() } - override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation, bindingTrace: BindingTrace): Collection { + override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation): Collection { // property may have an extension function type, we check the applicability later to avoid an early computing of deferred types return scope.getLocalVariable(name).singletonOrEmptyList() + scope.getProperties(name, location) + @@ -173,20 +172,20 @@ private object PropertyCollector : CallableDescriptorCollector) = variableDescriptors.filter { it is PropertyDescriptor } - override fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return filterProperties(VARIABLES_COLLECTOR.getNonExtensionsByName(scope, name, location, bindingTrace)) + override fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation): Collection { + return filterProperties(VARIABLES_COLLECTOR.getNonExtensionsByName(scope, name, location)) } - override fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return filterProperties(VARIABLES_COLLECTOR.getMembersByName(receiver, name, location, bindingTrace)) + override fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { + return filterProperties(VARIABLES_COLLECTOR.getMembersByName(receiver, name, location)) } - override fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return filterProperties(VARIABLES_COLLECTOR.getStaticMembersByName(receiver, name, location, bindingTrace)) + override fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { + return filterProperties(VARIABLES_COLLECTOR.getStaticMembersByName(receiver, name, location)) } - override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return filterProperties(VARIABLES_COLLECTOR.getExtensionsByName(scope, name, receiverTypes, location, bindingTrace)) + override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation): Collection { + return filterProperties(VARIABLES_COLLECTOR.getExtensionsByName(scope, name, receiverTypes, location)) } override fun toString() = "PROPERTIES" @@ -195,20 +194,20 @@ private object PropertyCollector : CallableDescriptorCollector CallableDescriptorCollector.filtered(filter: (D) -> Boolean): CallableDescriptorCollector { val delegate = this return object : CallableDescriptorCollector { - override fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return delegate.getNonExtensionsByName(scope, name, location, bindingTrace).filter(filter) + override fun getNonExtensionsByName(scope: JetScope, name: Name, location: LookupLocation): Collection { + return delegate.getNonExtensionsByName(scope, name, location).filter(filter) } - override fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return delegate.getMembersByName(receiver, name, location, bindingTrace).filter(filter) + override fun getMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { + return delegate.getMembersByName(receiver, name, location).filter(filter) } - override fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return delegate.getStaticMembersByName(receiver, name, location, bindingTrace).filter(filter) + override fun getStaticMembersByName(receiver: JetType, name: Name, location: LookupLocation): Collection { + return delegate.getStaticMembersByName(receiver, name, location).filter(filter) } - override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return delegate.getExtensionsByName(scope, name, receiverTypes, location, bindingTrace).filter(filter) + override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation): Collection { + return delegate.getExtensionsByName(scope, name, receiverTypes, location).filter(filter) } override fun toString(): String { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt index 28c4f2a9b29..e396eb686cc 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/TaskPrioritizer.kt @@ -183,7 +183,7 @@ public class TaskPrioritizer( convertWithImpliedThis( c.scope, explicitReceiver.value, - callableDescriptorCollector.getExtensionsByName(c.scope.asJetScope(), c.name, explicitReceiver.types, createLookupLocation(c), c.context.trace), + callableDescriptorCollector.getExtensionsByName(c.scope.asJetScope(), c.name, explicitReceiver.types, createLookupLocation(c)), createKind(EXTENSION_RECEIVER, isExplicit), c.context.call ) @@ -202,10 +202,10 @@ public class TaskPrioritizer( val members = Lists.newArrayList>() for (type in explicitReceiver.types) { val membersForThisVariant = if (staticMembers) { - callableDescriptorCollector.getStaticMembersByName(type, c.name, createLookupLocation(c), c.context.trace) + callableDescriptorCollector.getStaticMembersByName(type, c.name, createLookupLocation(c)) } else { - callableDescriptorCollector.getMembersByName(type, c.name, createLookupLocation(c), c.context.trace) + callableDescriptorCollector.getMembersByName(type, c.name, createLookupLocation(c)) } convertWithReceivers( membersForThisVariant, @@ -234,7 +234,7 @@ public class TaskPrioritizer( val dynamicScope = DynamicCallableDescriptors.createDynamicDescriptorScope(c.context.call, c.scope.ownerDescriptor) val dynamicDescriptors = c.callableDescriptorCollectors.flatMap { - it.getNonExtensionsByName(dynamicScope, c.name, createLookupLocation(c), c.context.trace) + it.getNonExtensionsByName(dynamicScope, c.name, createLookupLocation(c)) } convertWithReceivers(dynamicDescriptors, explicitReceiver.value, NO_RECEIVER, createKind(DISPATCH_RECEIVER, isExplicit), c.context.call) @@ -255,7 +255,7 @@ public class TaskPrioritizer( ) { c.result.addCandidates { val memberExtensions = - callableDescriptorCollector.getExtensionsByName(dispatchReceiver.type.memberScope, c.name, receiverParameter.types, createLookupLocation(c), c.context.trace) + callableDescriptorCollector.getExtensionsByName(dispatchReceiver.type.memberScope, c.name, receiverParameter.types, createLookupLocation(c)) convertWithReceivers(memberExtensions, dispatchReceiver, receiverParameter.value, receiverKind, c.context.call) } } @@ -270,7 +270,7 @@ public class TaskPrioritizer( val members = convertWithImpliedThisAndNoReceiver( c.scope, - callableDescriptorCollector.getNonExtensionsByName(c.scope.asJetScope(), c.name, createLookupLocation(c), c.context.trace), + callableDescriptorCollector.getNonExtensionsByName(c.scope.asJetScope(), c.name, createLookupLocation(c)), c.context.call ) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt index ff7c2e5d752..c71951d58fc 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/dynamicCalls.kt @@ -225,8 +225,8 @@ public fun DeclarationDescriptor.isDynamic(): Boolean { } class CollectorForDynamicReceivers(val delegate: CallableDescriptorCollector) : CallableDescriptorCollector by delegate { - override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation, bindingTrace: BindingTrace): Collection { - return delegate.getExtensionsByName(scope, name, receiverTypes, location, bindingTrace).filter { + override fun getExtensionsByName(scope: JetScope, name: Name, receiverTypes: Collection, location: LookupLocation): Collection { + return delegate.getExtensionsByName(scope, name, receiverTypes, location).filter { it.getExtensionReceiverParameter()?.getType()?.isDynamic() ?: false } }