diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt index 5bfbb7775eb..e76eab82db1 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt @@ -204,13 +204,16 @@ class KotlinUFunctionCallExpression( } private fun isAnnotationArgumentArrayInitializer(): Boolean { - val resolvedCall = resolvedCall ?: return false // KtAnnotationEntry (or KtCallExpression when annotation is nested) -> KtValueArgumentList -> KtValueArgument -> arrayOf call - return when (val elementAt2 = psi.parents.elementAtOrNull(2)) { + val isAnnotationArgument = when (val elementAt2 = psi.parents.elementAtOrNull(2)) { is KtAnnotationEntry -> true is KtCallExpression -> elementAt2.getParentOfType(true, KtDeclaration::class.java) != null else -> false - } && CompileTimeConstantUtils.isArrayFunctionCall(resolvedCall) + } + if (!isAnnotationArgument) return false + + val resolvedCall = resolvedCall ?: return false + return CompileTimeConstantUtils.isArrayFunctionCall(resolvedCall) } override fun convertParent(): UElement? = super.convertParent().let { result -> diff --git a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt.182 b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt.182 index c378a7c6e1d..dfcf9a077ea 100644 --- a/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt.182 +++ b/plugins/uast-kotlin/src/org/jetbrains/uast/kotlin/expressions/KotlinUFunctionCallExpression.kt.182 @@ -148,13 +148,16 @@ class KotlinUFunctionCallExpression( } private fun isAnnotationArgumentArrayInitializer(): Boolean { - val resolvedCall = resolvedCall ?: return false // KtAnnotationEntry (or KtCallExpression when annotation is nested) -> KtValueArgumentList -> KtValueArgument -> arrayOf call - return when (val elementAt2 = psi.parents.elementAtOrNull(2)) { + val isAnnotationArgument = when (val elementAt2 = psi.parents.elementAtOrNull(2)) { is KtAnnotationEntry -> true is KtCallExpression -> elementAt2.getParentOfType(true, KtDeclaration::class.java) != null else -> false - } && CompileTimeConstantUtils.isArrayFunctionCall(resolvedCall) + } + if (!isAnnotationArgument) return false + + val resolvedCall = resolvedCall ?: return false + return CompileTimeConstantUtils.isArrayFunctionCall(resolvedCall) } override fun convertParent(): UElement? = super.convertParent().let { result ->