IDEA-356036 log: added information about resolved and function call in KotlinGradleTaskRunConfigurationProducerTest

GitOrigin-RevId: e3217093589dbaa104c55a1883e12e14e0a2a1b6
This commit is contained in:
Sergei Vorobyov
2024-07-16 17:48:10 +02:00
committed by intellij-monorepo-bot
parent 18acbe25c7
commit 18983bb95a

View File

@@ -7,12 +7,17 @@ import com.intellij.execution.actions.ConfigurationFromContext
import com.intellij.execution.actions.ConfigurationFromContextImpl
import com.intellij.testFramework.assertInstanceOf
import com.intellij.testFramework.runInEdtAndWait
import org.jetbrains.kotlin.analysis.api.analyze
import org.jetbrains.kotlin.analysis.api.permissions.KaAllowAnalysisOnEdt
import org.jetbrains.kotlin.analysis.api.permissions.allowAnalysisOnEdt
import org.jetbrains.kotlin.analysis.api.resolution.singleFunctionCallOrNull
import org.jetbrains.kotlin.gradle.AbstractKotlinGradleCodeInsightBaseTest
import org.jetbrains.kotlin.idea.gradleJava.run.findTaskNameAround
import org.jetbrains.kotlin.idea.gradleJava.run.isInGradleKotlinScript
import org.jetbrains.kotlin.idea.test.util.elementByOffset
import org.jetbrains.kotlin.psi.KtCallExpression
import org.jetbrains.kotlin.psi.KtScriptInitializer
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
import org.jetbrains.plugins.gradle.execution.GradleRunnerUtil
import org.jetbrains.plugins.gradle.service.execution.GradleRunConfiguration
@@ -46,6 +51,21 @@ abstract class AbstractKotlinGradleRunConfigurationProducerBaseTest : AbstractKo
val module = context.module
val location = context.location
val psiElement = location?.psiElement
val callExpression = psiElement?.getParentOfType<KtCallExpression>(false, KtScriptInitializer::class.java)
val resolvedCall = callExpression?.let {
allowAnalysisOnEdt {
analyze(callExpression) {
callExpression.resolveToCall()
}
}
}
val functionCall = callExpression?.let {
allowAnalysisOnEdt {
analyze(callExpression) {
callExpression.resolveToCall()?.singleFunctionCallOrNull()
}
}
}
val taskName = psiElement?.let {
allowAnalysisOnEdt {
findTaskNameAround(it)
@@ -58,7 +78,8 @@ abstract class AbstractKotlinGradleRunConfigurationProducerBaseTest : AbstractKo
| Kotlin: ${psiElement?.let { isInGradleKotlinScript(it) }}
| Project path: ${module?.let { GradleRunnerUtil.resolveProjectPath(it) }}
| Task: $taskName
}
| - Resolved call: $resolvedCall
| - Function call: $functionCall
""".trimMargin()
}