From 04a6ebf0d65278db36b33cba3948c13be9f96a43 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 24 Mar 2015 16:20:23 +0300 Subject: [PATCH] Dropped JetReference.resolveMap() --- .../jetbrains/kotlin/idea/references/JetReference.kt | 5 ----- .../codeInsight/KotlinCopyPasteReferenceProcessor.kt | 11 ++++++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/JetReference.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/JetReference.kt index 656c6a89c59..502974fa20e 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/JetReference.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/references/JetReference.kt @@ -31,7 +31,6 @@ import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList public trait JetReference : PsiPolyVariantReference { public fun resolveToDescriptors(): Collection - public fun resolveMap(): Map> } public abstract class AbstractJetReference(element: T) @@ -77,10 +76,6 @@ public abstract class AbstractJetReference(element: T) return getTargetDescriptors(expression.analyze()) } - override fun resolveMap(): Map> { - return getTargetDescriptors(expression.analyze()) keysToMap { resolveToPsiElements(it) } - } - private fun resolveToPsiElements(context: BindingContext, targetDescriptors: Collection): Collection { if (targetDescriptors.isNotEmpty()) { return targetDescriptors flatMap { target -> resolveToPsiElements(target) } diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt index e03bb6ec238..1e0f42e295f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt @@ -119,14 +119,15 @@ public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor && resolveMap.size() > 1) return listOf() + if (reference !is JetMultiReference<*> && descriptors.size() > 1) return listOf() val collectedData = ArrayList() - for ((descriptor, declarations) in resolveMap) { - val declaration = declarations.singleOrNull() ?: continue - if (declaration.isInCopiedArea(file, startOffsets, endOffsets)) continue + for (descriptor in descriptors) { + val declarations = DescriptorToSourceUtilsIde.getAllDeclarations(file.getProject(), descriptor) + val declaration = declarations.singleOrNull() + if (declaration != null && declaration.isInCopiedArea(file, startOffsets, endOffsets)) continue if (!descriptor.isExtension) { if (element !is JetNameReferenceExpression) continue