From 5614afed14f3c3549927328890acaa28cd2ce958 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 31 Jul 2019 14:15:10 +0300 Subject: [PATCH] Fix over-caching content in light classes for local declarations (KT-32820) Use combination of OOCB and file tracker for local classes. #KT-32820 Fixed --- .../asJava/classes/KtLightClassForLocalDeclaration.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt index 8728d716705..5ecf4dcee06 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForLocalDeclaration.kt @@ -21,8 +21,8 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiMethod import com.intellij.psi.impl.light.LightClass import com.intellij.psi.impl.light.LightMethod +import org.jetbrains.kotlin.analyzer.KotlinModificationTrackerService import org.jetbrains.kotlin.asJava.LightClassUtil -import org.jetbrains.kotlin.asJava.classes.lazyPub import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.psi.* @@ -31,6 +31,15 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType open class KtLightClassForLocalDeclaration( classOrObject: KtClassOrObject ) : KtLightClassForSourceDeclaration(classOrObject) { + override val myInnersCache: KotlinClassInnerStuffCache = + KotlinClassInnerStuffCache( + this, + with(KotlinModificationTrackerService.getInstance(classOrObject.project)) { + listOf( + outOfBlockModificationTracker, fileModificationTracker(classOrObject.containingKtFile) + ) + } + ) override fun copy(): PsiElement = KtLightClassForLocalDeclaration(classOrObject.copy() as KtClassOrObject) override fun getQualifiedName(): String? = null