From cd1ecea1313e305adc640caac6fcc87cae49b6d2 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 25 Jun 2018 19:52:40 +0300 Subject: [PATCH] [java] restores navigation policy extension compatibility (IDEABKL-7869) --- .../psi/impl/compiled/ClsCustomNavigationPolicyEx.java | 1 + .../src/com/intellij/psi/impl/compiled/ClsFileImpl.java | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsCustomNavigationPolicyEx.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsCustomNavigationPolicyEx.java index fcb9399def63..e986f04779d6 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsCustomNavigationPolicyEx.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsCustomNavigationPolicyEx.java @@ -6,6 +6,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @deprecated use {@link ClsCustomNavigationPolicy} directly */ +@SuppressWarnings("DeprecatedIsStillUsed") @ApiStatus.ScheduledForRemoval(inVersion = "2019") public abstract class ClsCustomNavigationPolicyEx implements ClsCustomNavigationPolicy { @SuppressWarnings("unused") diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java index db403760a19a..44ba1fa65fee 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/ClsFileImpl.java @@ -310,7 +310,9 @@ public class ClsFileImpl extends PsiBinaryFileImpl public PsiElement getNavigationElement() { for (ClsCustomNavigationPolicy navigationPolicy : Extensions.getExtensions(ClsCustomNavigationPolicy.EP_NAME)) { try { - PsiElement navigationElement = navigationPolicy.getNavigationElement(this); + @SuppressWarnings("deprecation") PsiElement navigationElement = + navigationPolicy instanceof ClsCustomNavigationPolicyEx ? ((ClsCustomNavigationPolicyEx)navigationPolicy).getFileNavigationElement(this) : + navigationPolicy.getNavigationElement(this); if (navigationElement != null) return navigationElement; } catch (IndexNotReadyException ignore) { }