diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java index 519a262bf75..7e82a737c45 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/KotlinJavaPsiFacade.java @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.resolve.jvm; import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; @@ -119,6 +120,7 @@ public class KotlinJavaPsiFacade { } for (KotlinPsiElementFinderWrapper finder : finders()) { + ProgressIndicatorAndCompilationCanceledStatus.checkCanceled(); if (finder instanceof CliFinder) { JavaClass aClass = ((CliFinder) finder).findClass(request, scope); if (aClass != null) return aClass; diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt index d63783768df..ad10f732092 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.isValidJavaFqName +import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtEnumEntry import org.jetbrains.kotlin.psi.KtFile @@ -86,6 +87,7 @@ class JavaElementFinder( if (qualifiedName.shortName().asString() != JvmAbi.DEFAULT_IMPLS_CLASS_NAME) return for (classOrObject in kotlinAsJavaSupport.findClassOrObjectDeclarations(qualifiedName.parent(), scope)) { + ProgressIndicatorAndCompilationCanceledStatus.checkCanceled() //NOTE: can't filter out more interfaces right away because decompiled declarations do not have member bodies if (classOrObject is KtClass && classOrObject.isInterface()) { val interfaceClass = classOrObject.toLightClass() ?: continue diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt index fb9af4e3a1d..2858617c5df 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.core.script +import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.openapi.vfs.VirtualFile @@ -24,6 +25,7 @@ class KotlinScriptDependenciesClassFinder( override fun findClass(qualifiedName: String, scope: GlobalSearchScope): PsiClass? { tailrec fun findClassInner(parentQualifier: String, inners: List = emptyList()): PsiClass? { if (parentQualifier.isEmpty()) return null + ProgressManager.checkCanceled() val parentClass = super.findClass(parentQualifier, scope) if (parentClass != null) { if (inners.isNotEmpty()) {