FIR IDE: collect diagnostics under read lock
This commit is contained in:
+4
-1
@@ -59,10 +59,13 @@ internal class FileStructure(
|
|||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
fun getAllDiagnosticsForFile(diagnosticCheckerFilter: DiagnosticCheckerFilter): Collection<FirPsiDiagnostic<*>> {
|
fun getAllDiagnosticsForFile(diagnosticCheckerFilter: DiagnosticCheckerFilter): Collection<FirPsiDiagnostic<*>> {
|
||||||
val structureElements = getAllStructureElements()
|
val structureElements = getAllStructureElements()
|
||||||
return buildSet {
|
|
||||||
|
return moduleFileCache.firFileLockProvider.withReadLock(firFile) {
|
||||||
|
buildSet {
|
||||||
collectDiagnosticsFromStructureElements(structureElements, diagnosticCheckerFilter)
|
collectDiagnosticsFromStructureElements(structureElements, diagnosticCheckerFilter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun MutableSet<FirPsiDiagnostic<*>>.collectDiagnosticsFromStructureElements(
|
private fun MutableSet<FirPsiDiagnostic<*>>.collectDiagnosticsFromStructureElements(
|
||||||
structureElements: Collection<FileStructureElement>,
|
structureElements: Collection<FileStructureElement>,
|
||||||
|
|||||||
Reference in New Issue
Block a user