Improve incremental analisys for nested blocks

This commit is contained in:
Igor Yakovlev
2020-07-01 01:01:06 +03:00
parent efdeb7b449
commit 89d5c030dc
@@ -340,7 +340,11 @@ val KtFile.inBlockModifications: Collection<KtElement>
private fun KtFile.addInBlockModifiedItem(element: KtElement) {
val collection = putUserDataIfAbsent(IN_BLOCK_MODIFICATIONS, mutableSetOf())
synchronized(collection) {
collection.add(element)
val needToAddBlock = collection.none { it.isAncestor(element, strict = false) }
if (needToAddBlock) {
collection.removeIf { element.isAncestor(it, strict = false) }
collection.add(element)
}
}
val count = getUserData(FILE_IN_BLOCK_MODIFICATION_COUNT) ?: 0
putUserData(FILE_IN_BLOCK_MODIFICATION_COUNT, count + 1)