Fixed bug when ctrl+click on ArrayList.add() and other stuff navigated to alt-headers.
#KT-1815 fixed
This commit is contained in:
@@ -34,6 +34,9 @@ public class JetClsNavigationPolicy implements ClsCustomNavigationPolicy {
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getNavigationElement(@NotNull ClsClassImpl clsClass) {
|
||||
if (clsClass.getUserData(ClsClassImpl.DELEGATE_KEY) != null) {
|
||||
return null;
|
||||
}
|
||||
JetClass jetClass = (JetClass) getJetDeclarationByClsElement(clsClass);
|
||||
if (jetClass != null) {
|
||||
JetClass sourceClass = JetSourceNavigationHelper.getSourceClass(jetClass);
|
||||
@@ -47,6 +50,9 @@ public class JetClsNavigationPolicy implements ClsCustomNavigationPolicy {
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getNavigationElement(@NotNull ClsMethodImpl clsMethod) {
|
||||
if (clsMethod.getParent().getUserData(ClsClassImpl.DELEGATE_KEY) != null) {
|
||||
return null;
|
||||
}
|
||||
JetDeclaration jetDeclaration = getJetDeclarationByClsElement(clsMethod);
|
||||
if (jetDeclaration instanceof JetProperty) {
|
||||
JetDeclaration sourceProperty = JetSourceNavigationHelper.getSourceProperty((JetProperty) jetDeclaration);
|
||||
@@ -66,6 +72,9 @@ public class JetClsNavigationPolicy implements ClsCustomNavigationPolicy {
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiElement getNavigationElement(@NotNull ClsFieldImpl clsField) {
|
||||
if (clsField.getParent().getUserData(ClsClassImpl.DELEGATE_KEY) != null) {
|
||||
return null;
|
||||
}
|
||||
return getJetDeclarationByClsElement(clsField);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,11 @@
|
||||
|
||||
package org.jetbrains.jet.plugin.libraries;
|
||||
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -51,6 +55,20 @@ public class LibraryNavigationRegressionTest extends LightCodeInsightFixtureTest
|
||||
ref.resolve().getNavigationElement();
|
||||
}
|
||||
|
||||
/**
|
||||
* Regression test against KT-1815
|
||||
*/
|
||||
public void testRefToAltHeaders() {
|
||||
String text = "fun foo(e : java.util.Map.Entry<String, String>) { e.getKey(); }";
|
||||
myFixture.configureByText(JetFileType.INSTANCE, text);
|
||||
PsiReference ref = myFixture.getFile().findReferenceAt(text.indexOf("getKey"));
|
||||
PsiClass expectedClass =
|
||||
JavaPsiFacade.getInstance(getProject()).findClass("java.util.Map.Entry", GlobalSearchScope.allScope(getProject()));
|
||||
//noinspection ConstantConditions
|
||||
PsiElement actualClass = ref.resolve().getNavigationElement().getParent();
|
||||
assertSame(expectedClass, actualClass);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected LightProjectDescriptor getProjectDescriptor() {
|
||||
|
||||
Reference in New Issue
Block a user