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