From 4e1baa5177ab5cb26db99d3ad9622c19a3d02f80 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Mon, 13 Mar 2017 15:01:30 +0100 Subject: [PATCH] hierarchy view: getNavigationElement to support kotlin light classes (IDEA-169532) --- .../openapi/fileEditor/PsiElementNavigatable.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/fileEditor/PsiElementNavigatable.java b/platform/platform-api/src/com/intellij/openapi/fileEditor/PsiElementNavigatable.java index d44ef2078bcd..de1423e73a93 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileEditor/PsiElementNavigatable.java +++ b/platform/platform-api/src/com/intellij/openapi/fileEditor/PsiElementNavigatable.java @@ -26,6 +26,7 @@ import com.intellij.pom.Navigatable; import com.intellij.psi.PsiElement; import com.intellij.psi.SmartPointerManager; import com.intellij.psi.SmartPsiElementPointer; +import com.intellij.util.ObjectUtils; import org.jetbrains.annotations.NotNull; import static com.intellij.openapi.util.Conditions.or; @@ -39,8 +40,9 @@ public class PsiElementNavigatable implements Navigatable { @Override public final void navigate(boolean requestFocus) { - PsiElement element = myPointer.getElement(); - if (element != null && element.isValid()) { + PsiElement originalElement = myPointer.getElement(); + if (originalElement != null && originalElement.isValid()) { + PsiElement element = ObjectUtils.notNull(originalElement.getNavigationElement(), originalElement); VirtualFile file = element.getContainingFile().getVirtualFile(); if (file != null) { new Task.Modal(element.getProject(), EditorBundle.message("editor.open.file.progress", file.getName()), true) { @@ -62,7 +64,7 @@ public class PsiElementNavigatable implements Navigatable { @Override public boolean canNavigate() { PsiElement element = myPointer.getElement(); - return element != null && element.isValid() && element.getContainingFile().getVirtualFile() != null; + return element != null && element.isValid() && ObjectUtils.notNull(element.getNavigationElement(), element).getContainingFile().getVirtualFile() != null; } @Override