Optimize MutableDiagnosticsWithSuppression
avoid modificationTracker and own diagnostics list initialization if possible
This commit is contained in:
+9
-4
@@ -39,11 +39,16 @@ class MutableDiagnosticsWithSuppression @JvmOverloads constructor(
|
|||||||
|
|
||||||
private fun readonlyView(): DiagnosticsWithSuppression = cache.value!!
|
private fun readonlyView(): DiagnosticsWithSuppression = cache.value!!
|
||||||
|
|
||||||
override val modificationTracker = CompositeModificationTracker(delegateDiagnostics.modificationTracker)
|
override val modificationTracker by lazy(LazyThreadSafetyMode.PUBLICATION) {
|
||||||
|
CompositeModificationTracker(delegateDiagnostics.modificationTracker)
|
||||||
|
}
|
||||||
|
|
||||||
override fun all(): Collection<Diagnostic> = readonlyView().all()
|
override fun all(): Collection<Diagnostic> =
|
||||||
override fun forElement(psiElement: PsiElement) = readonlyView().forElement(psiElement)
|
if (diagnosticList.isEmpty()) delegateDiagnostics.all() else readonlyView().all()
|
||||||
override fun noSuppression() = readonlyView().noSuppression()
|
override fun forElement(psiElement: PsiElement) =
|
||||||
|
if (diagnosticList.isEmpty()) delegateDiagnostics.forElement(psiElement) else readonlyView().forElement(psiElement)
|
||||||
|
override fun noSuppression() =
|
||||||
|
if (diagnosticList.isEmpty()) delegateDiagnostics.noSuppression() else readonlyView().noSuppression()
|
||||||
|
|
||||||
//essential that this list is readonly
|
//essential that this list is readonly
|
||||||
fun getOwnDiagnostics(): List<Diagnostic> {
|
fun getOwnDiagnostics(): List<Diagnostic> {
|
||||||
|
|||||||
Reference in New Issue
Block a user