diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ex/LocalQuickFixWrapper.java b/platform/lang-impl/src/com/intellij/codeInspection/ex/LocalQuickFixWrapper.java index e16a2cefa979..7b6ace1514b7 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ex/LocalQuickFixWrapper.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ex/LocalQuickFixWrapper.java @@ -24,8 +24,6 @@ import com.intellij.codeInspection.reference.RefManager; import com.intellij.codeInspection.ui.InspectionToolPresentation; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiManager; -import com.intellij.psi.util.PsiModificationTracker; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -92,7 +90,6 @@ public class LocalQuickFixWrapper extends QuickFixAction { @NotNull final GlobalInspectionContextImpl context, @NotNull final CommonProblemDescriptor[] descriptors, @NotNull final Set ignoredElements) { - final PsiModificationTracker tracker = PsiManager.getInstance(project).getModificationTracker(); if (myFix instanceof BatchQuickFix) { final List collectedElementsToIgnore = new ArrayList<>(); final Runnable refreshViews = () -> { @@ -121,13 +118,10 @@ public class LocalQuickFixWrapper extends QuickFixAction { if (fixes != null) { final QuickFix fix = getWorkingQuickFix(fixes); if (fix != null) { - final long startCount = tracker.getModificationCount(); //CCE here means QuickFix was incorrectly inherited, is there a way to signal (plugin) it is wrong? fix.applyFix(project, descriptor); - if (startCount != tracker.getModificationCount()) { - restart = true; - ignore(ignoredElements, descriptor, fix, context); - } + restart = true; + ignore(ignoredElements, descriptor, fix, context); } } } diff --git a/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java b/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java index d277b3e84086..49d1b98443ee 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/ui/DefaultInspectionToolPresentation.java @@ -355,7 +355,8 @@ public class DefaultInspectionToolPresentation implements ProblemDescriptionsPro @Override public void ignoreCurrentElement(RefEntity refEntity) { if (refEntity == null) return; - getIgnoredElements().put(refEntity, getProblemElements().get(refEntity)); + getIgnoredElements().put(refEntity, mergeDescriptors(getIgnoredElements().getOrDefault(refEntity, CommonProblemDescriptor.EMPTY_ARRAY), + getProblemElements().getOrDefault(refEntity, CommonProblemDescriptor.EMPTY_ARRAY))); } @Override