Dropped JetReference.resolveMap()

This commit is contained in:
Valentin Kipyatkov
2015-03-24 16:20:23 +03:00
parent 67de85aed1
commit 04a6ebf0d6
2 changed files with 6 additions and 10 deletions
@@ -31,7 +31,6 @@ import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList
public trait JetReference : PsiPolyVariantReference {
public fun resolveToDescriptors(): Collection<DeclarationDescriptor>
public fun resolveMap(): Map<DeclarationDescriptor, Collection<PsiElement>>
}
public abstract class AbstractJetReference<T : JetElement>(element: T)
@@ -77,10 +76,6 @@ public abstract class AbstractJetReference<T : JetElement>(element: T)
return getTargetDescriptors(expression.analyze())
}
override fun resolveMap(): Map<DeclarationDescriptor, Collection<PsiElement>> {
return getTargetDescriptors(expression.analyze()) keysToMap { resolveToPsiElements(it) }
}
private fun resolveToPsiElements(context: BindingContext, targetDescriptors: Collection<DeclarationDescriptor>): Collection<PsiElement> {
if (targetDescriptors.isNotEmpty()) {
return targetDescriptors flatMap { target -> resolveToPsiElements(target) }
@@ -119,14 +119,15 @@ public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor<Kotlin
val reference = element.getReference() as? JetReference ?: return listOf()
val resolveMap = reference.resolveMap()
val descriptors = reference.resolveToDescriptors()
//check whether this reference is unambiguous
if (reference !is JetMultiReference<*> && resolveMap.size() > 1) return listOf()
if (reference !is JetMultiReference<*> && descriptors.size() > 1) return listOf()
val collectedData = ArrayList<KotlinReferenceData>()
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