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) {