diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesEqualityTestBase.kt b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesEqualityTestBase.kt index 4ff01c13dc4..271a72a01e1 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesEqualityTestBase.kt +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/base/AbstractSymbolLightClassesEqualityTestBase.kt @@ -6,13 +6,11 @@ package org.jetbrains.kotlin.light.classes.symbol.base import com.intellij.openapi.project.Project -import com.intellij.openapi.util.SimpleModificationTracker import com.intellij.psi.JavaElementVisitor import com.intellij.psi.PsiClass import com.intellij.psi.PsiElementVisitor import com.intellij.psi.PsiEnumConstant -import org.jetbrains.kotlin.analysis.providers.createAllLibrariesModificationTracker -import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker +import org.jetbrains.kotlin.analysis.providers.KotlinGlobalModificationService import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.model.TestModule @@ -33,21 +31,24 @@ abstract class AbstractSymbolLightClassesEqualityTestBase( final override fun doTestByFileStructure(ktFiles: List, module: TestModule, testServices: TestServices) { val lightClasses = lightClassesToCheck(ktFiles, module, testServices) if (lightClasses.isEmpty()) return - val project = lightClasses.first().project - val modificationTracker = if (isTestAgainstCompiledCode) { - project.createAllLibrariesModificationTracker() - } else { - project.createProjectWideOutOfBlockModificationTracker() - } as SimpleModificationTracker - val testVisitor = createTestVisitor(modificationTracker, testServices.assertions) + val testVisitor = createTestVisitor(lightClasses.first().project, testServices.assertions) for (lightClass in lightClasses) { lightClass.accept(testVisitor) } } + private fun invalidateCaches(project: Project) { + val globalModificationService = KotlinGlobalModificationService.getInstance(project) + if (isTestAgainstCompiledCode) { + globalModificationService.publishGlobalModuleStateModification() + } else { + globalModificationService.publishGlobalSourceOutOfBlockModification() + } + } + private fun createTestVisitor( - modificationTracker: SimpleModificationTracker, + project: Project, assertions: AssertionsService, ): PsiElementVisitor = object : JavaElementVisitor() { override fun visitClass(aClass: PsiClass) { @@ -70,7 +71,7 @@ abstract class AbstractSymbolLightClassesEqualityTestBase( comparator: (before: R, after: R) -> Unit = ::assertElementEquals, ) { val before = element.accessor() - modificationTracker.incModificationCount() + invalidateCaches(project) val after = element.accessor() comparator(before, after)