Dropped JetReference.resolveMap()
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user