Check for batch PSI children update when invalidating package cache

#KT-17868 fixed
This commit is contained in:
Simon Ogorodnik
2017-05-18 20:45:17 +03:00
parent 92a763552c
commit dba9011563
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.idea.stubindex.PackageIndexUtil
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtPackageDirective
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
import java.util.concurrent.ConcurrentMap
@@ -73,6 +74,11 @@ class KotlinPackageStatementPsiTreeChangePreprocessor(private val project: Proje
if (child.getParentOfType<KtPackageDirective>(false) != null)
project.service<PerModulePackageCacheService>().notifyPackageChange(file)
}
PsiTreeChangeEventImpl.PsiEventType.CHILDREN_CHANGED -> {
val parent = event.parent ?: return
if (parent.getChildrenOfType<KtPackageDirective>().any())
project.service<PerModulePackageCacheService>().notifyPackageChange(file)
}
else -> {
}
}