From 621abc7e020b8775c64c1b389dff155cd4afc384 Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Fri, 22 Sep 2017 20:45:08 +0300 Subject: [PATCH] UAST-java: fix for methods parameters converting --- uast/uast-common/src/org/jetbrains/uast/qualifiedUtils.kt | 5 +++-- .../src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt | 2 +- .../test/org/jetbrains/uast/test/java/JavaUastApiTest.kt | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/uast/uast-common/src/org/jetbrains/uast/qualifiedUtils.kt b/uast/uast-common/src/org/jetbrains/uast/qualifiedUtils.kt index f63c35b68d0a..89367fd0a2e6 100644 --- a/uast/uast-common/src/org/jetbrains/uast/qualifiedUtils.kt +++ b/uast/uast-common/src/org/jetbrains/uast/qualifiedUtils.kt @@ -176,7 +176,8 @@ fun UExpression.endsWithQualified(fqName: String): Boolean { return true } -fun UElement.asRecursiveLogString(): String { +@JvmOverloads +fun UElement.asRecursiveLogString(render: (UElement) -> String = { it.asLogString() }): String { val stringBuilder = StringBuilder() val indent = " " @@ -185,7 +186,7 @@ fun UElement.asRecursiveLogString(): String { override fun visitElement(node: UElement): Boolean { stringBuilder.append(indent.repeat(level)) - stringBuilder.appendln(node.asLogString()) + stringBuilder.appendln(render(node)) level++ return false } diff --git a/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt b/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt index 89a87fb8d539..e686d45f6f1c 100644 --- a/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt +++ b/uast/uast-java/src/org/jetbrains/uast/java/JavaUastLanguagePlugin.kt @@ -238,7 +238,7 @@ internal object JavaConverter { receiver = convertOrEmpty(el.methodExpression.qualifierExpression!!, this) selector = JavaUCallExpression(el, this) } - if (requiredType?.isAssignableFrom(UCallExpression::class.java) != null) + if (requiredType?.isAssignableFrom(UCallExpression::class.java) != false) expr.selector else expr diff --git a/uast/uast-tests/test/org/jetbrains/uast/test/java/JavaUastApiTest.kt b/uast/uast-tests/test/org/jetbrains/uast/test/java/JavaUastApiTest.kt index 1dfaaed7ded4..46b165bdea8b 100644 --- a/uast/uast-tests/test/org/jetbrains/uast/test/java/JavaUastApiTest.kt +++ b/uast/uast-tests/test/org/jetbrains/uast/test/java/JavaUastApiTest.kt @@ -49,7 +49,9 @@ class JavaUastApiTest : AbstractJavaUastTest() { val index2 = file.psi.text.indexOf("q") val literal = PsiTreeUtil.getParentOfType(file.psi.findElementAt(index2), PsiLiteralExpression::class.java)!! - UsefulTestCase.assertInstanceOf(literal.toUElement(), ULiteralExpression::class.java) + val uLiteral = literal.toUElement()!! + UsefulTestCase.assertInstanceOf(uLiteral, ULiteralExpression::class.java) + UsefulTestCase.assertInstanceOf(uLiteral.uastParent, UCallExpression::class.java) } }