From 77be33d433c82bdabd92661fd72b394e78795dbc Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Fri, 24 Nov 2017 19:10:17 +0300 Subject: [PATCH] Uast: `KotlinPrimaryConstructorUMethod` renamed to `KotlinConstructorUMethod` (KT-21409) --- .../org/jetbrains/uast/kotlin/KotlinAbstractUElement.kt | 2 +- .../jetbrains/uast/kotlin/declarations/KotlinUClass.kt | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinAbstractUElement.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinAbstractUElement.kt index d0f38f39295..2797e73a6aa 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinAbstractUElement.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/KotlinAbstractUElement.kt @@ -103,7 +103,7 @@ fun doConvertParent(element: UElement, parent: PsiElement?): UElement? { val containingClass = parent.containingClassOrObject if (containingClass != null) { val containingUClass = KotlinUastLanguagePlugin().convertElementWithParent(containingClass, null) as? KotlinUClass - containingUClass?.methods?.filterIsInstance()?.firstOrNull()?.let { + containingUClass?.methods?.filterIsInstance()?.firstOrNull { it.isPrimary }?.let { return it.uastBody } } diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt index f4a3d55c8b6..38109b9f64d 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/declarations/KotlinUClass.kt @@ -76,7 +76,7 @@ open class KotlinUClass private constructor( fun createUMethod(psiMethod: PsiMethod): UMethod { return if (psiMethod is KtLightMethod && psiMethod.isConstructor) { - KotlinPrimaryConstructorUMethod(ktClass, psiMethod, this) + KotlinConstructorUMethod(ktClass, psiMethod, this) } else { getLanguagePlugin().convert(psiMethod, this) } @@ -102,11 +102,15 @@ open class KotlinUClass private constructor( } } -class KotlinPrimaryConstructorUMethod( +class KotlinConstructorUMethod( private val ktClass: KtClassOrObject?, override val psi: KtLightMethod, override val uastParent: UElement? ): KotlinUMethod(psi, uastParent) { + + val isPrimary: Boolean + get() = psi.kotlinOrigin is KtPrimaryConstructor + override val uastBody: UExpression? by lz { val delegationCall: KtCallElement? = psi.kotlinOrigin.let { when (it) {