From 4cdc3fdde9c810e24596450e3d76b69d6f9d4ea8 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Fri, 14 Jul 2017 22:44:16 +0300 Subject: [PATCH] KT-14606: Never compute decompiled text in BasicLookupElementFactory #KT-14606 fixed --- .../kotlin/idea/completion/BasicLookupElementFactory.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt index 43e36117548..4efc0b7bc33 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt @@ -30,9 +30,11 @@ import org.jetbrains.kotlin.idea.completion.handlers.KotlinFunctionInsertHandler import org.jetbrains.kotlin.idea.core.completion.DeclarationLookupObject import org.jetbrains.kotlin.idea.core.completion.PackageLookupObject import org.jetbrains.kotlin.load.java.JvmAbi +import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor import org.jetbrains.kotlin.name.FqName 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.synthetic.SamAdapterExtensionFunctionDescriptor import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor @@ -120,8 +122,7 @@ class BasicLookupElementFactory( ): LookupElement { val declarationLazy by lazy { DescriptorToSourceUtilsIde.getAnyDeclaration(project, descriptor) } - //TODO: try JavaClassDescriptor? - if (descriptor is ClassifierDescriptor && + if (descriptor is JavaClassDescriptor && declarationLazy is PsiClass && declarationLazy !is KtLightClass) { // for java classes we create special lookup elements @@ -157,8 +158,7 @@ class BasicLookupElementFactory( } else -> { lookupObject = object : DeclarationLookupObjectImpl(descriptor) { - override val psiElement: PsiElement? - get() = declarationLazy + override val psiElement by lazy { DescriptorToSourceUtils.getSourceFromDescriptor(descriptor) } override fun getIcon(flags: Int) = KotlinDescriptorIconProvider.getIcon(descriptor, psiElement, flags) }