KT-14606: Never compute decompiled text in BasicLookupElementFactory
#KT-14606 fixed
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 43e3611..4efc0b7 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.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 @@
): 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 @@
}
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)
}