From bc84f9421c9ffd28b27d46262473f31eb1b34bd7 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Thu, 2 Feb 2023 13:36:20 +0100 Subject: [PATCH] EA-769294 - PE: DataValidators.reportPsiElementOnEdt fixing data rules GitOrigin-RevId: d34b357ac7bf75c3ce2462c2b5e7551003a36457 --- .../codeInsight/navigation/GotoTargetHandler.java | 10 ++++++++-- .../impl/dataRules/PsiElementFromSelectionRule.java | 4 ---- .../impl/dataRules/PsiElementFromSelectionsRule.java | 4 +--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/navigation/GotoTargetHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/navigation/GotoTargetHandler.java index 8eb0ab498488..85e6f2e7b757 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/navigation/GotoTargetHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/navigation/GotoTargetHandler.java @@ -31,6 +31,7 @@ import com.intellij.openapi.util.NlsContexts; import com.intellij.openapi.util.Ref; import com.intellij.pom.Navigatable; import com.intellij.psi.*; +import com.intellij.psi.util.PsiAwareObject; import com.intellij.psi.util.PsiUtilCore; import com.intellij.ui.ExperimentalUI; import com.intellij.usages.UsageView; @@ -418,7 +419,7 @@ public abstract class GotoTargetHandler implements CodeInsightActionHandler { } } - static class ItemWithPresentation { + static class ItemWithPresentation implements PsiAwareObject { private ItemWithPresentation(Object item, TargetPresentation presentation) { this.item = item; this.presentation = presentation; @@ -426,5 +427,10 @@ public abstract class GotoTargetHandler implements CodeInsightActionHandler { Object item; private TargetPresentation presentation; - } + + @Override + public @Nullable PsiElement findElement(@NotNull Project project) { + return item instanceof Pointer ? (PsiElement)((Pointer)item).dereference() : null; + } + } } diff --git a/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionRule.java b/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionRule.java index 8ed32dac9d46..b9775cb4607b 100644 --- a/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionRule.java +++ b/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionRule.java @@ -24,7 +24,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; -import com.intellij.psi.SmartPsiElementPointer; import com.intellij.psi.util.PsiAwareObject; import org.jetbrains.annotations.NotNull; @@ -48,9 +47,6 @@ public class PsiElementFromSelectionRule implements GetDataRule { element = project == null || !((VirtualFile)item).isValid() ? null : PsiManager.getInstance(project).findFile((VirtualFile)item); } - else if (item instanceof SmartPsiElementPointer) { - element = ((SmartPsiElementPointer)item).getElement(); - } return element != null && element.isValid() ? element : null; } } diff --git a/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionsRule.java b/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionsRule.java index 89fba849ce58..1c8e111372c8 100644 --- a/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionsRule.java +++ b/platform/lang-impl/src/com/intellij/ide/impl/dataRules/PsiElementFromSelectionsRule.java @@ -9,7 +9,6 @@ import com.intellij.openapi.actionSystem.DataProvider; import com.intellij.openapi.actionSystem.PlatformCoreDataKeys; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; -import com.intellij.psi.SmartPsiElementPointer; import com.intellij.psi.util.PsiAwareObject; import org.jetbrains.annotations.NotNull; @@ -26,8 +25,7 @@ public class PsiElementFromSelectionsRule implements GetDataRule { Object o = AbstractProjectViewPane.extractValueFromNode(objects[i]); PsiElement element = o instanceof PsiElement ? (PsiElement)o : o instanceof PsiAwareObject && project != null ? ((PsiAwareObject)o).findElement(project) : - o instanceof PsiElementNavigationItem ? ((PsiElementNavigationItem)o).getTargetElement() : - o instanceof SmartPsiElementPointer ? ((SmartPsiElementPointer)o).getElement() : null; + o instanceof PsiElementNavigationItem ? ((PsiElementNavigationItem)o).getTargetElement() : null; if (element == null || !element.isValid()) return null; elements[i] = element; }