Uast: uastParent made final in KotlinAbstractUElement
This commit is contained in:
committed by
Nikolay Krasko
parent
e7200d16c3
commit
2c81362ce1
@@ -33,7 +33,7 @@ import org.jetbrains.uast.kotlin.psi.UastKotlinPsiVariable
|
||||
|
||||
abstract class KotlinAbstractUElement(private val givenParent: UElement?) : UElement, JvmDeclarationUElement {
|
||||
|
||||
override val uastParent: UElement? by lz {
|
||||
final override val uastParent: UElement? by lz {
|
||||
givenParent ?: convertParent()
|
||||
}
|
||||
|
||||
|
||||
@@ -262,8 +262,8 @@ class KotlinScriptUClass(
|
||||
class KotlinScriptConstructorUMethod(
|
||||
script: KtScript,
|
||||
override val psi: KtLightMethod,
|
||||
override val uastParent: UElement?
|
||||
) : KotlinUMethod(psi, uastParent) {
|
||||
givenParent: UElement?
|
||||
) : KotlinUMethod(psi, givenParent) {
|
||||
override val uastBody: UExpression? by lz {
|
||||
val initializers = script.declarations.filterIsInstance<KtScriptInitializer>()
|
||||
KotlinUBlockExpression.create(initializers, this)
|
||||
|
||||
@@ -337,7 +337,7 @@ open class KotlinUAnnotatedLocalVariable(
|
||||
override val annotations: List<UAnnotation> by lz { computeAnnotations(this) }
|
||||
}
|
||||
|
||||
open class KotlinUEnumConstant(
|
||||
class KotlinUEnumConstant(
|
||||
psi: PsiEnumConstant,
|
||||
override val sourcePsi: KtElement?,
|
||||
givenParent: UElement?
|
||||
@@ -349,6 +349,10 @@ open class KotlinUEnumConstant(
|
||||
}
|
||||
}
|
||||
|
||||
override fun getInitializer(): PsiExpression? = super<AbstractKotlinUVariable>.getInitializer()
|
||||
|
||||
override fun getOriginalElement(): PsiElement? = super<AbstractKotlinUVariable>.getOriginalElement()
|
||||
|
||||
override val javaPsi = unwrap<UEnumConstant, PsiEnumConstant>(psi)
|
||||
|
||||
override val psi = javaPsi
|
||||
@@ -404,15 +408,11 @@ open class KotlinUEnumConstant(
|
||||
private class KotlinEnumConstantClassReference(
|
||||
override val psi: PsiEnumConstant,
|
||||
override val sourcePsi: KtElement?,
|
||||
private val givenParent: UElement?
|
||||
givenParent: UElement?
|
||||
) : KotlinAbstractUExpression(givenParent), USimpleNameReferenceExpression {
|
||||
override val javaPsi: PsiElement?
|
||||
get() = psi
|
||||
|
||||
override val uastParent: UElement? by lz {
|
||||
givenParent ?: KotlinUastLanguagePlugin().convertElementWithParent(psi.parent ?: psi.containingFile, null)
|
||||
}
|
||||
|
||||
override fun resolve() = psi.containingClass
|
||||
override val resolvedName: String?
|
||||
get() = psi.containingClass?.name
|
||||
|
||||
+2
-2
@@ -28,8 +28,8 @@ open class KotlinUDeclarationsExpression(
|
||||
override val sourcePsi: PsiElement?
|
||||
get() = psiAnchor
|
||||
|
||||
override val uastParent: UElement?
|
||||
get() = if (psiAnchor != null) doConvertParent(this, psiAnchor.parent) else super.uastParent
|
||||
override fun convertParent(): UElement? =
|
||||
psiAnchor?.let { doConvertParent(this, it.parent) } ?: super.convertParent()
|
||||
|
||||
constructor(uastParent: UElement?) : this(null, uastParent)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user