Wrap KtClassOrObject.isLocal, KtFile.isScript with runReadAction in LightClasses
#EA-211576 Fixed (cherry picked from commit 75a59d4bced714af51abd7e354bc873313b28051)
This commit is contained in:
+3
-2
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService
|
||||
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
||||
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
|
||||
import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject
|
||||
import org.jetbrains.kotlin.asJava.classes.safeIsLocal
|
||||
import org.jetbrains.kotlin.codegen.CompilationErrorHandler
|
||||
import org.jetbrains.kotlin.codegen.MemberCodegen
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
@@ -59,7 +60,7 @@ class LightClassDataProviderForClassOrObject(
|
||||
val trackerService = KotlinModificationTrackerService.getInstance(classOrObject.project)
|
||||
return CachedValueProvider.Result.create(
|
||||
computeLightClassData(),
|
||||
if (classOrObject.isLocal) trackerService.modificationTracker else trackerService.outOfBlockModificationTracker
|
||||
if (classOrObject.safeIsLocal()) trackerService.modificationTracker else trackerService.outOfBlockModificationTracker
|
||||
)
|
||||
}
|
||||
|
||||
@@ -188,7 +189,7 @@ private class ClassFilterForClassOrObject(private val classOrObject: KtClassOrOb
|
||||
// TODO: current method will process local classes in irrelevant declarations, it should be fixed.
|
||||
// We generate all enclosing classes
|
||||
|
||||
if (classOrObject.isLocal && processingClassOrObject.isLocal) {
|
||||
if (classOrObject.safeIsLocal() && processingClassOrObject.safeIsLocal()) {
|
||||
val commonParent = PsiTreeUtil.findCommonParent(classOrObject, processingClassOrObject)
|
||||
return commonParent != null && commonParent !is PsiFile
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user