KtLightElement is no longer PsiNamedElement
This commit is contained in:
@@ -24,13 +24,13 @@ import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind
|
||||
|
||||
interface KtLightElement<out T : KtElement, out D : PsiElement> : PsiNamedElement {
|
||||
interface KtLightElement<out T : KtElement, out D : PsiElement> : PsiElement {
|
||||
val kotlinOrigin: T?
|
||||
|
||||
val clsDelegate: D
|
||||
}
|
||||
|
||||
interface KtLightDeclaration<out T : KtDeclaration, out D : PsiElement> : KtLightElement<T, D>
|
||||
interface KtLightDeclaration<out T : KtDeclaration, out D : PsiElement> : KtLightElement<T, D>, PsiNamedElement
|
||||
|
||||
interface KtLightMember<out D : PsiMember> : PsiMember, KtLightDeclaration<KtDeclaration, D>, PsiNameIdentifierOwner, PsiDocCommentOwner {
|
||||
val lightMemberOrigin: LightMemberOrigin?
|
||||
|
||||
-5
@@ -38,8 +38,6 @@ class KtLightPsiReferenceList (
|
||||
inner class KtLightSuperTypeReference(
|
||||
override val clsDelegate: PsiJavaCodeReferenceElement
|
||||
) : KtLightElement<KtSuperTypeListEntry, PsiJavaCodeReferenceElement>, PsiJavaCodeReferenceElement by clsDelegate {
|
||||
override fun getName() = null
|
||||
override fun setName(name: String) = throw UnsupportedOperationException()
|
||||
|
||||
override val kotlinOrigin by lazyPub {
|
||||
val superTypeList = this@KtLightPsiReferenceList.kotlinOrigin ?: return@lazyPub null
|
||||
@@ -69,9 +67,6 @@ class KtLightPsiReferenceList (
|
||||
clsDelegate.referenceElements.map { KtLightSuperTypeReference(it) }.toTypedArray()
|
||||
}
|
||||
|
||||
override fun getName() = null
|
||||
override fun setName(name: String) = throw UnsupportedOperationException()
|
||||
|
||||
override fun getParent() = owner
|
||||
|
||||
override fun getReferenceElements() = _referenceElements
|
||||
|
||||
+2
-5
@@ -23,10 +23,7 @@ import com.intellij.psi.search.*
|
||||
import com.intellij.psi.search.searches.ReferencesSearch
|
||||
import com.intellij.util.Processor
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightParameter
|
||||
import org.jetbrains.kotlin.asJava.elements.*
|
||||
import org.jetbrains.kotlin.asJava.namedUnwrappedElement
|
||||
import org.jetbrains.kotlin.asJava.toLightClass
|
||||
import org.jetbrains.kotlin.asJava.toLightElements
|
||||
@@ -245,7 +242,7 @@ class KotlinReferencesSearcher : QueryExecutorBase<PsiReference, ReferencesSearc
|
||||
if (kotlinOptions.acceptCompanionObjectMembers) {
|
||||
val originLightClass = element.getStrictParentOfType<KtClass>()?.toLightClass()
|
||||
if (originLightClass != null) {
|
||||
val lightDeclarations: List<KtLightElement<*, *>?> =
|
||||
val lightDeclarations: List<KtLightMember<*>?> =
|
||||
originLightClass.methods.map { it as? KtLightMethod } +
|
||||
originLightClass.fields.map { it as? KtLightField }
|
||||
|
||||
|
||||
+3
-3
@@ -42,7 +42,7 @@ import com.intellij.util.IncorrectOperationException
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import gnu.trove.THashMap
|
||||
import gnu.trove.TObjectHashingStrategy
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
|
||||
import org.jetbrains.kotlin.asJava.toLightElements
|
||||
import org.jetbrains.kotlin.idea.codeInsight.shorten.addToBeShortenedDescendantsToWaitingSet
|
||||
import org.jetbrains.kotlin.idea.core.deleteSingle
|
||||
@@ -105,7 +105,7 @@ private object ElementHashingStrategy : TObjectHashingStrategy<PsiElement> {
|
||||
override fun equals(e1: PsiElement?, e2: PsiElement?): Boolean {
|
||||
if (e1 === e2) return true
|
||||
// Name should be enough to distinguish different light elements based on the same original declaration
|
||||
if (e1 is KtLightElement<*, *> && e2 is KtLightElement<*, *>) {
|
||||
if (e1 is KtLightDeclaration<*, *> && e2 is KtLightDeclaration<*, *>) {
|
||||
return e1.kotlinOrigin == e2.kotlinOrigin && e1.name == e2.name
|
||||
}
|
||||
return e1 == e2
|
||||
@@ -114,7 +114,7 @@ private object ElementHashingStrategy : TObjectHashingStrategy<PsiElement> {
|
||||
override fun computeHashCode(e: PsiElement?): Int {
|
||||
return when (e) {
|
||||
null -> 0
|
||||
is KtLightElement<*, *> -> (e.kotlinOrigin?.hashCode() ?: 0) * 31 + (e.name?.hashCode() ?: 0)
|
||||
is KtLightDeclaration<*, *> -> (e.kotlinOrigin?.hashCode() ?: 0) * 31 + (e.name?.hashCode() ?: 0)
|
||||
else -> e.hashCode()
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -34,7 +34,7 @@ import com.intellij.usageView.UsageInfo
|
||||
import com.intellij.usageView.UsageViewUtil
|
||||
import org.jetbrains.kotlin.asJava.*
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
@@ -100,7 +100,7 @@ class RenameKotlinPropertyProcessor : RenameKotlinPsiProcessor() {
|
||||
|| (getterJvmName == null && (it.resolve() as? PsiNamedElement)?.name != setterJvmName)
|
||||
|| (setterJvmName == null && (it.resolve() as? PsiNamedElement)?.name != getterJvmName)
|
||||
}
|
||||
element is KtLightElement<*, *> -> {
|
||||
element is KtLightDeclaration<*, *> -> {
|
||||
val name = element.name
|
||||
if (name == getterJvmName || name == setterJvmName) allReferences.filterNot { it is KtReference } else allReferences
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.intellij.spring.model.highlighting.SpringAutowireUtil
|
||||
import com.intellij.spring.model.jam.qualifiers.SpringJamQualifier
|
||||
import com.intellij.spring.model.utils.SpringModelSearchers
|
||||
import com.intellij.spring.references.SpringQualifierReference
|
||||
import com.intellij.util.IncorrectOperationException
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||
import org.jetbrains.kotlin.asJava.toLightAnnotation
|
||||
import org.jetbrains.kotlin.asJava.toLightElements
|
||||
@@ -50,8 +49,6 @@ class KtSpringQualifierReference(element: KtStringTemplateExpression) : SpringQu
|
||||
class StringTemplatePsiLiteralWrapper(
|
||||
val element: KtStringTemplateExpression
|
||||
) : PsiElement by element, PsiLiteralExpression, KtLightElement<KtStringTemplateExpression, KtStringTemplateExpression>, PsiCompiledElement {
|
||||
override fun getName() = null
|
||||
override fun setName(newName: String) = throw IncorrectOperationException()
|
||||
|
||||
override fun getValue() = element.plainContent
|
||||
override fun getType() = PsiType.getJavaLangString(element.manager, element.project.allScope())
|
||||
|
||||
Reference in New Issue
Block a user