diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/CodeGenerationController.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/CodeGenerationController.kt index 57905e55a8..af33856772 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/CodeGenerationController.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/CodeGenerationController.kt @@ -264,7 +264,8 @@ object CodeGenerationController { val classUnderTest = testSets.first().method.clazz - val params = findMethodParams(classUnderTest, selectedMethods) + val params = DumbService.getInstance(model.project) + .runReadActionInSmartMode(Computable { findMethodParams(classUnderTest, selectedMethods) }) val codeGenerator = CodeGenerator( classUnderTest = classUnderTest.java, diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt index 1f4a185c28..780056b1b4 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt @@ -12,9 +12,11 @@ import com.intellij.openapi.components.service import com.intellij.openapi.module.Module import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.Task +import com.intellij.openapi.project.DumbService import com.intellij.openapi.project.Project import com.intellij.openapi.roots.OrderEnumerator import com.intellij.openapi.ui.Messages +import com.intellij.openapi.util.Computable import com.intellij.openapi.util.text.StringUtil import com.intellij.psi.PsiClass import com.intellij.psi.SyntheticElement @@ -150,7 +152,9 @@ object UtTestsDialogProcessor { .filterWhen(UtSettings.skipTestGenerationForSyntheticMethods) { it.member !is SyntheticElement } - findMethodsInClassMatchingSelected(clazz, srcMethods) + DumbService.getInstance(project).runReadActionInSmartMode(Computable { + findMethodsInClassMatchingSelected(clazz, srcMethods) + }) }.executeSynchronously() val className = srcClass.name diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/SignaturesHelper.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/SignaturesHelper.kt index a3f9497faa..7d6d925b99 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/SignaturesHelper.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/util/SignaturesHelper.kt @@ -1,5 +1,8 @@ package org.utbot.intellij.plugin.util +import com.intellij.openapi.project.DumbService +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Computable import com.intellij.psi.PsiMethod import com.intellij.refactoring.util.classMembers.MemberInfo import kotlin.reflect.KFunction @@ -7,9 +10,9 @@ import kotlin.reflect.KParameter import kotlin.reflect.jvm.javaType fun MemberInfo.signature(): Signature = - (this.member as PsiMethod).signature() + (this.member as PsiMethod).signature() -fun PsiMethod.signature() = +private fun PsiMethod.signature() = Signature(this.name, this.parameterList.parameters.map { it.type.canonicalText .replace("...", "[]") //for PsiEllipsisType