mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Uast-java: JavaUAnonymousClass.uastAnchor made return proper anchor
This commit is contained in:
@@ -16,10 +16,7 @@
|
||||
|
||||
package org.jetbrains.uast.java
|
||||
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.PsiAnonymousClass
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiJavaCodeReferenceElement
|
||||
import com.intellij.psi.*
|
||||
import org.jetbrains.uast.*
|
||||
import org.jetbrains.uast.java.internal.JavaUElementWithComments
|
||||
|
||||
@@ -95,6 +92,14 @@ class JavaUAnonymousClass(
|
||||
listOf(createJavaUTypeReferenceExpression(psi.baseClassReference)) + super.uastSuperTypes
|
||||
}
|
||||
|
||||
override val uastAnchor: UIdentifier? by lazy {
|
||||
when (javaPsi) {
|
||||
is PsiEnumConstantInitializer ->
|
||||
(javaPsi.parent as? PsiEnumConstant)?.let { UIdentifier(it.nameIdentifier, this) }
|
||||
else -> UIdentifier(psi.baseClassReference.referenceNameElement, this)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getSuperClass(): UClass? = super<AbstractJavaUClass>.getSuperClass()
|
||||
override fun getFields(): Array<UField> = super<AbstractJavaUClass>.getFields()
|
||||
override fun getInitializers(): Array<UClassInitializer> = super<AbstractJavaUClass>.getInitializers()
|
||||
|
||||
@@ -111,7 +111,13 @@ interface RenderLogTestBase {
|
||||
uElement.getContainingUFile())
|
||||
}
|
||||
|
||||
val anchorPsi = (node as? UDeclaration)?.uastAnchor?.psi
|
||||
val uastAnchor = (node as? UDeclaration)?.uastAnchor
|
||||
if (uastAnchor != null) {
|
||||
TestCase.assertEquals("should be appropriate sourcePsi for uastAnchor for ${node.javaClass} [${node.sourcePsi?.text}] ",
|
||||
node.sourcePsiElement!!.containingFile!!, uastAnchor.sourcePsi?.containingFile)
|
||||
}
|
||||
|
||||
val anchorPsi = uastAnchor?.psi
|
||||
if (anchorPsi != null) {
|
||||
TestCase.assertEquals(anchorPsi.containingFile, node.sourcePsiElement!!.containingFile!!)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user