Don't detect isDeprecated twice

This commit is contained in:
Valentin Kipyatkov
2015-06-19 01:16:35 +03:00
parent 8520235934
commit 1011a59884
4 changed files with 10 additions and 8 deletions
@@ -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
}
}
@@ -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<DeclarationLookupObject>().getName())
}
@@ -111,7 +111,7 @@ public class LookupElementFactory(
val packageName = qualifiedName.substringBeforeLast('.', "<root>")
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)
}
@@ -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
}