Uast: uastParent made final in KotlinAbstractUElement

This commit is contained in:
Nicolay Mitropolsky
2017-12-05 19:23:36 +03:00
committed by Nikolay Krasko
parent e7200d16c3
commit 2c81362ce1
4 changed files with 11 additions and 11 deletions
@@ -33,7 +33,7 @@ import org.jetbrains.uast.kotlin.psi.UastKotlinPsiVariable
abstract class KotlinAbstractUElement(private val givenParent: UElement?) : UElement, JvmDeclarationUElement { abstract class KotlinAbstractUElement(private val givenParent: UElement?) : UElement, JvmDeclarationUElement {
override val uastParent: UElement? by lz { final override val uastParent: UElement? by lz {
givenParent ?: convertParent() givenParent ?: convertParent()
} }
@@ -262,8 +262,8 @@ class KotlinScriptUClass(
class KotlinScriptConstructorUMethod( class KotlinScriptConstructorUMethod(
script: KtScript, script: KtScript,
override val psi: KtLightMethod, override val psi: KtLightMethod,
override val uastParent: UElement? givenParent: UElement?
) : KotlinUMethod(psi, uastParent) { ) : KotlinUMethod(psi, givenParent) {
override val uastBody: UExpression? by lz { override val uastBody: UExpression? by lz {
val initializers = script.declarations.filterIsInstance<KtScriptInitializer>() val initializers = script.declarations.filterIsInstance<KtScriptInitializer>()
KotlinUBlockExpression.create(initializers, this) KotlinUBlockExpression.create(initializers, this)
@@ -337,7 +337,7 @@ open class KotlinUAnnotatedLocalVariable(
override val annotations: List<UAnnotation> by lz { computeAnnotations(this) } override val annotations: List<UAnnotation> by lz { computeAnnotations(this) }
} }
open class KotlinUEnumConstant( class KotlinUEnumConstant(
psi: PsiEnumConstant, psi: PsiEnumConstant,
override val sourcePsi: KtElement?, override val sourcePsi: KtElement?,
givenParent: UElement? 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 javaPsi = unwrap<UEnumConstant, PsiEnumConstant>(psi)
override val psi = javaPsi override val psi = javaPsi
@@ -404,15 +408,11 @@ open class KotlinUEnumConstant(
private class KotlinEnumConstantClassReference( private class KotlinEnumConstantClassReference(
override val psi: PsiEnumConstant, override val psi: PsiEnumConstant,
override val sourcePsi: KtElement?, override val sourcePsi: KtElement?,
private val givenParent: UElement? givenParent: UElement?
) : KotlinAbstractUExpression(givenParent), USimpleNameReferenceExpression { ) : KotlinAbstractUExpression(givenParent), USimpleNameReferenceExpression {
override val javaPsi: PsiElement? override val javaPsi: PsiElement?
get() = psi get() = psi
override val uastParent: UElement? by lz {
givenParent ?: KotlinUastLanguagePlugin().convertElementWithParent(psi.parent ?: psi.containingFile, null)
}
override fun resolve() = psi.containingClass override fun resolve() = psi.containingClass
override val resolvedName: String? override val resolvedName: String?
get() = psi.containingClass?.name get() = psi.containingClass?.name
@@ -28,8 +28,8 @@ open class KotlinUDeclarationsExpression(
override val sourcePsi: PsiElement? override val sourcePsi: PsiElement?
get() = psiAnchor get() = psiAnchor
override val uastParent: UElement? override fun convertParent(): UElement? =
get() = if (psiAnchor != null) doConvertParent(this, psiAnchor.parent) else super.uastParent psiAnchor?.let { doConvertParent(this, it.parent) } ?: super.convertParent()
constructor(uastParent: UElement?) : this(null, uastParent) constructor(uastParent: UElement?) : this(null, uastParent)