diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUAnnotation.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUAnnotation.kt index 3f0772531a8..48a648826ee 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUAnnotation.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUAnnotation.kt @@ -13,10 +13,8 @@ import org.jetbrains.uast.* class KotlinUAnnotation( override val psi: KtAnnotationEntry, - private val givenParent: UElement? -) : UAnnotation { - override val uastParent: UElement? by lz { convertParent(givenParent) } - + givenParent: UElement? +) : KotlinAbstractUElement(givenParent), UAnnotation { private val resolvedAnnotation: AnnotationDescriptor? by lz { psi.analyze()[BindingContext.ANNOTATION, psi] } private val resolvedCall: ResolvedCall<*>? by lz { psi.getResolvedCall(psi.analyze()) } diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUImportStatement.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUImportStatement.kt index e8352e45ee7..a990b42f918 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUImportStatement.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUImportStatement.kt @@ -28,10 +28,8 @@ import org.jetbrains.uast.USimpleNameReferenceExpression class KotlinUImportStatement( override val psi: KtImportDirective, - private val givenParent: UElement? -) : UImportStatement { - override val uastParent: UElement? by lz { convertParent(givenParent) } - + givenParent: UElement? +) : KotlinAbstractUElement(givenParent), UImportStatement { override val isOnDemand: Boolean get() = psi.isAllUnder diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt index ac9fe9c47f2..0f37f34099a 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUMethod.kt @@ -30,12 +30,10 @@ import org.jetbrains.uast.kotlin.* open class KotlinUMethod( psi: KtLightMethod, - private val givenParent: UElement? -) : UAnnotationMethod, JavaUElementWithComments, PsiMethod by psi { + givenParent: UElement? +) : KotlinAbstractUElement(givenParent), UAnnotationMethod, JavaUElementWithComments, PsiMethod by psi { override val psi: KtLightMethod = unwrap(psi) - override val uastParent: UElement? by lz { convertParent(givenParent) } - override val uastDefaultValue by lz { val annotationParameter = psi.kotlinOrigin as? KtParameter ?: return@lz null val defaultValue = annotationParameter.defaultValue ?: return@lz null @@ -85,8 +83,6 @@ open class KotlinUMethod( override fun equals(other: Any?) = other is KotlinUMethod && psi == other.psi - override fun hashCode() = psi.hashCode() - companion object { fun create(psi: KtLightMethod, containingElement: UElement?) = KotlinUMethod(psi, containingElement) } diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt index 7200349e96c..d2a743d001a 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUVariable.kt @@ -33,10 +33,8 @@ import org.jetbrains.uast.kotlin.psi.UastKotlinPsiParameter import org.jetbrains.uast.kotlin.psi.UastKotlinPsiVariable import org.jetbrains.uast.visitor.UastVisitor -abstract class AbstractKotlinUVariable(private val givenParent: UElement?) - : PsiVariable, UVariable, KotlinUElementWithComments { - - override val uastParent: UElement? by lz { convertParent(givenParent) } +abstract class AbstractKotlinUVariable(givenParent: UElement?) + : KotlinAbstractUElement(givenParent), PsiVariable, UVariable, KotlinUElementWithComments { override val uastInitializer: UExpression? get() { @@ -83,8 +81,6 @@ abstract class AbstractKotlinUVariable(private val givenParent: UElement?) get() = UIdentifier(nameIdentifier, this) override fun equals(other: Any?) = other is AbstractKotlinUVariable && psi == other.psi - - override fun hashCode() = psi.hashCode() } class KotlinUVariable( diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUNamedExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUNamedExpression.kt index 4e1ffd23c35..ba6fd45d566 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUNamedExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUNamedExpression.kt @@ -23,17 +23,15 @@ import org.jetbrains.uast.* class KotlinUNamedExpression private constructor( override val name: String?, - private val givenParent: UElement?, + givenParent: UElement?, expressionProducer: (UElement) -> UExpression -) : UNamedExpression { +) : KotlinAbstractUElement(givenParent), UNamedExpression { override val expression: UExpression by lz { expressionProducer(this) } override val annotations: List = emptyList() override val psi: PsiElement? = null - override val uastParent: UElement? by lz { convertParent(givenParent) } - companion object { internal fun create(name: String?, valueArgument: ValueArgument, uastParent: UElement?): UNamedExpression { val expression = valueArgument.getArgumentExpression() diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/LocalFunction.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/LocalFunction.kt index f73b7eb0a47..b704548a079 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/LocalFunction.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/LocalFunction.kt @@ -12,19 +12,14 @@ import org.jetbrains.uast.kotlin.psi.UastKotlinPsiVariable private class KotlinLocalFunctionUVariable( val function: KtFunction, override val psi: PsiVariable, - private val givenParent: UElement? -) : UVariable, PsiVariable by psi { - override val uastParent: UElement? by lz { convertParent(givenParent) } - + givenParent: UElement? +) : KotlinAbstractUElement(givenParent), UVariable, PsiVariable by psi { override val uastInitializer: UExpression? by lz { createLocalFunctionLambdaExpression(function, this) } override val typeReference: UTypeReferenceExpression? = null override val uastAnchor: UElement? = null override val annotations: List = emptyList() - - override fun equals(other: Any?) = other is KotlinLocalFunctionUVariable && psi == other.psi - override fun hashCode() = psi.hashCode() }