KT-7194 No completion for member extension function inside itself

#KT-7194 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-04-01 12:07:46 +03:00
parent 7e9314bd40
commit 3b110f8ef8
5 changed files with 63 additions and 3 deletions
@@ -126,12 +126,14 @@ public class ReferenceVariantsHelper(
// process extensions and non-instance members
for (descriptor in resolutionScope.getDescriptorsFiltered(kindFilter, nameFilter)) {
if (descriptor is CallableDescriptor && descriptor.getDispatchReceiverParameter() != null) continue // should already be processed via implicit receivers
if (descriptor is CallableDescriptor && descriptor.getExtensionReceiverParameter() != null) {
descriptorsSet.addAll(descriptor.substituteExtensionIfCallable(receiverValues, context, dataFlowInfo, CallType.NORMAL))
val dispatchReceiver = descriptor.getDispatchReceiverParameter()
if (dispatchReceiver == null || dispatchReceiver in receivers) {
descriptorsSet.addAll(descriptor.substituteExtensionIfCallable(receiverValues, context, dataFlowInfo, CallType.NORMAL))
}
}
else {
if (descriptor is CallableDescriptor && descriptor.getDispatchReceiverParameter() != null) continue // should already be processed via implicit receivers
descriptorsSet.add(descriptor)
}
}