diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt index f6a4bc551ad..d721e34350b 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSorting.kt @@ -110,11 +110,7 @@ private object KindWeigher : LookupElementWeigher("kotlin.kind") { private object DeprecatedWeigher : LookupElementWeigher("kotlin.deprecated") { override fun weigh(element: LookupElement): Int { val o = element.getObject() as? DeclarationLookupObject ?: return 0 - val isDeprecated = if (o.descriptor != null) - KotlinBuiltIns.isDeprecated(o.descriptor!!) - else - (o.psiElement as PsiDocCommentOwner).isDeprecated() - return if (isDeprecated) 1 else 0 + return if (o.isDeprecated) 1 else 0 } } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DeclarationLookupObjectImpl.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DeclarationLookupObjectImpl.kt index 66819eafbb7..31f84729041 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DeclarationLookupObjectImpl.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/DeclarationLookupObjectImpl.kt @@ -17,7 +17,9 @@ package org.jetbrains.kotlin.idea.completion import com.intellij.openapi.diagnostic.Logger +import com.intellij.psi.PsiDocCommentOwner import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.idea.caches.resolve.ResolutionFacade import org.jetbrains.kotlin.idea.core.completion.DeclarationLookupObject @@ -55,6 +57,8 @@ public class DeclarationLookupObjectImpl( return descriptorsEqualWithSubstitution(descriptor, lookupObject.descriptor) && psiElement == lookupObject.psiElement } + override val isDeprecated = if (descriptor != null) KotlinBuiltIns.isDeprecated(descriptor) else (psiElement as PsiDocCommentOwner).isDeprecated() + companion object { private val LOG = Logger.getInstance("#" + javaClass().getName()) } 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 f119eccf1f8..f85e8e96253 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 @@ -111,7 +111,7 @@ public class LookupElementFactory( val packageName = qualifiedName.substringBeforeLast('.', "") element = element.appendTailText(" ($packageName)", true) - if (psiClass.isDeprecated()) { + if (lookupObject.isDeprecated) { element = element.setStrikeout(true) } @@ -151,7 +151,8 @@ public class LookupElementFactory( val name = nameAndIconDescriptor.getName().asString() val icon = JetDescriptorIconProvider.getIcon(nameAndIconDescriptor, iconDeclaration, Iconable.ICON_FLAG_VISIBILITY) - var element = LookupElementBuilder.create(DeclarationLookupObjectImpl(descriptor, declaration, resolutionFacade), name) + val lookupObject = DeclarationLookupObjectImpl(descriptor, declaration, resolutionFacade) + var element = LookupElementBuilder.create(lookupObject, name) .withIcon(icon) when (descriptor) { @@ -201,7 +202,7 @@ public class LookupElementFactory( } } - if (KotlinBuiltIns.isDeprecated(descriptor)) { + if (lookupObject.isDeprecated) { element = element.withStrikeoutness(true) } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/completion/DeclarationLookupObject.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/completion/DeclarationLookupObject.kt index 0037beae9df..b0073696f6f 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/completion/DeclarationLookupObject.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/completion/DeclarationLookupObject.kt @@ -22,4 +22,5 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor public interface DeclarationLookupObject { public val psiElement: PsiElement? public val descriptor: DeclarationDescriptor? + public val isDeprecated: Boolean }