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
This commit is contained in:
committed by
Nikolay Krasko
parent
ce3ad8f4da
commit
5614afed14
+10
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user