From 1e940bde012bc3eceb555326a45b6913e15fa5f9 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 10 Nov 2017 18:21:35 +0300 Subject: [PATCH] Lookup element factory: do not use outdated descriptor Probably #KT-20986 Fixed --- .../kotlin/idea/completion/BasicLookupElementFactory.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 bfe651fe7a5..a96e5ae7958 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 @@ -37,9 +37,11 @@ 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.resolve.descriptorUtil.module import org.jetbrains.kotlin.synthetic.SamAdapterExtensionFunctionDescriptor import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor import org.jetbrains.kotlin.utils.addToStdlib.firstNotNullResult +import javax.swing.Icon class BasicLookupElementFactory( private val project: Project, @@ -163,7 +165,10 @@ class BasicLookupElementFactory( lookupObject = object : DeclarationLookupObjectImpl(descriptor) { override val psiElement by lazy { DescriptorToSourceUtils.getSourceFromDescriptor(descriptor) } - override fun getIcon(flags: Int) = KotlinDescriptorIconProvider.getIcon(descriptor, psiElement, flags) + override fun getIcon(flags: Int): Icon? { + if (!descriptor.module.isValid) return null + return KotlinDescriptorIconProvider.getIcon(descriptor, psiElement, flags) + } } descriptor.name.asString() }