From 0ab105f2654bdfb198466624504e5c5164cef8b5 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 11 Mar 2024 19:38:13 +0100 Subject: [PATCH] [LC] KotlinAsJavaSupportBase: add `checkCanceled` The jump from Kt into the Psi world is a good place to check if we have been canceled ^KTIJ-28688 --- .../jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt index 786983518a4..ddaf00620a5 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/KotlinAsJavaSupportBase.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.asJava import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.project.Project import com.intellij.openapi.util.ModificationTracker import com.intellij.psi.PsiClass @@ -225,8 +226,12 @@ abstract class KotlinAsJavaSupportBase(protected val project: Pro } private inline fun ifValid(element: T, action: () -> V?): V? { - if (!element.isValid) return null - return action() + ProgressManager.checkCanceled() + + return if (!element.isValid) + null + else + action() } class LightClassCachedValue(val value: T?, val tracker: ModificationTracker)