From 7458000f1419997c27799b1e31ebaa263398ccc1 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 24 Aug 2015 19:14:17 +0300 Subject: [PATCH] Use DescriptorToSourceUtilsIde because DescriptorToSourceUtils does not work for compiled Kotlin descriptors --- .../kotlin/idea/completion/LookupElementFactory.kt | 7 ++++--- .../kotlin/idea/completion/smart/TypeInstantiationItems.kt | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt index 304ad73b862..e07727ef82d 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.asJava.KotlinLightClass import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.idea.JetDescriptorIconProvider +import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.completion.handlers.* import org.jetbrains.kotlin.idea.core.completion.DeclarationLookupObject import org.jetbrains.kotlin.idea.resolve.ResolutionFacade @@ -35,7 +36,6 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.psiUtil.parents import org.jetbrains.kotlin.renderer.DescriptorRenderer -import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension import org.jetbrains.kotlin.synthetic.SamAdapterExtensionFunctionDescriptor @@ -76,7 +76,8 @@ public class LookupElementFactory( DescriptorUtils.unwrapFakeOverride(descriptor) else descriptor - var element = createLookupElement(_descriptor, DescriptorToSourceUtils.descriptorToDeclaration(_descriptor), qualifyNestedClasses, includeClassTypeArguments) + val declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(resolutionFacade.project, _descriptor) + var element = createLookupElement(_descriptor, declaration, qualifyNestedClasses, includeClassTypeArguments) val weight = callableWeight(descriptor) if (weight != null) { @@ -200,7 +201,7 @@ public class LookupElementFactory( val iconDeclaration: PsiElement? if (descriptor is ConstructorDescriptor) { nameAndIconDescriptor = descriptor.getContainingDeclaration() - iconDeclaration = DescriptorToSourceUtils.descriptorToDeclaration(nameAndIconDescriptor) + iconDeclaration = DescriptorToSourceUtilsIde.getAnyDeclaration(resolutionFacade.project, nameAndIconDescriptor) } else { nameAndIconDescriptor = descriptor diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt index 6743265ac2f..b21e527b31e 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/TypeInstantiationItems.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.asJava.LightClassUtil import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations +import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.completion.* import org.jetbrains.kotlin.idea.completion.handlers.KotlinFunctionInsertHandler import org.jetbrains.kotlin.idea.core.overrideImplement.ImplementMembersHandler @@ -41,7 +42,6 @@ import org.jetbrains.kotlin.psi.JetClassOrObject import org.jetbrains.kotlin.psi.JetDeclaration import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.resolve.BindingContext -import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.PossiblyBareType import org.jetbrains.kotlin.resolve.descriptorUtil.resolveTopLevelClass @@ -104,7 +104,7 @@ class TypeInstantiationItems( private fun MutableCollection.addInheritorSearcher( descriptor: ClassDescriptor, kotlinClassDescriptor: ClassDescriptor, typeArgs: List, tail: Tail? ) { - val _declaration = DescriptorToSourceUtils.descriptorToDeclaration(descriptor) ?: return + val _declaration = DescriptorToSourceUtilsIde.getAnyDeclaration(resolutionFacade.project, descriptor) ?: return val declaration = if (_declaration is JetDeclaration) toFromOriginalFileMapper.toOriginalFile(_declaration) ?: return else