diff --git a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java
index a775d261346..729e7c9eecd 100644
--- a/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java
+++ b/idea/src/org/jetbrains/jet/plugin/hierarchy/calls/KotlinCallerMethodsTreeStructure.java
@@ -35,8 +35,11 @@ import com.intellij.util.containers.HashMap;
import gnu.trove.TObjectHashingStrategy;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.asJava.LightClassUtil;
+import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
+import org.jetbrains.jet.lang.resolve.calls.callUtil.CallUtilPackage;
+import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
import org.jetbrains.jet.plugin.hierarchy.HierarchyUtils;
import org.jetbrains.jet.plugin.references.JetReference;
@@ -205,14 +208,17 @@ public class KotlinCallerMethodsTreeStructure extends KotlinCallTreeStructure {
}
}
- PsiElement element = HierarchyUtils.getCallHierarchyElement(ref.getElement());
+ PsiElement refElement = ref.getElement();
+ if (PsiTreeUtil.getParentOfType(refElement, JetImportDirective.class, true) != null) return true;
+
+ PsiElement element = HierarchyUtils.getCallHierarchyElement(refElement);
if (kotlinOnly && !(element instanceof JetNamedDeclaration)) return true;
// If reference belongs to property initializer, show enclosing declaration instead
if (element instanceof JetProperty) {
JetProperty property = (JetProperty) element;
- if (PsiTreeUtil.isAncestor(property.getInitializer(), ref.getElement(), false)) {
+ if (PsiTreeUtil.isAncestor(property.getInitializer(), refElement, false)) {
element = HierarchyUtils.getCallHierarchyElement(element.getParent());
}
}
diff --git a/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/KotlinFunctionNonCallUsages_verification.xml b/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/KotlinFunctionNonCallUsages_verification.xml
new file mode 100644
index 00000000000..a5143dd7a9d
--- /dev/null
+++ b/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/KotlinFunctionNonCallUsages_verification.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/main0.kt b/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/main0.kt
new file mode 100644
index 00000000000..948d3e32136
--- /dev/null
+++ b/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/main0.kt
@@ -0,0 +1,5 @@
+package p
+
+fun foo() {
+
+}
\ No newline at end of file
diff --git a/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/main1.kt b/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/main1.kt
new file mode 100644
index 00000000000..0396b8271b8
--- /dev/null
+++ b/idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/main1.kt
@@ -0,0 +1,7 @@
+package q
+
+import p.foo
+
+fun bar() {
+ foo()
+}
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/jet/plugin/hierarchy/HierarchyTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/hierarchy/HierarchyTestGenerated.java
index 2be08e86ace..076d011b858 100644
--- a/idea/tests/org/jetbrains/jet/plugin/hierarchy/HierarchyTestGenerated.java
+++ b/idea/tests/org/jetbrains/jet/plugin/hierarchy/HierarchyTestGenerated.java
@@ -312,6 +312,12 @@ public class HierarchyTestGenerated extends AbstractHierarchyTest {
doCallerHierarchyTest(fileName);
}
+ @TestMetadata("kotlinFunctionNonCallUsages")
+ public void testKotlinFunctionNonCallUsages() throws Exception {
+ String fileName = JetTestUtils.navigationMetadata("idea/testData/hierarchy/calls/callers/kotlinFunctionNonCallUsages/");
+ doCallerHierarchyTest(fileName);
+ }
+
@TestMetadata("kotlinLocalClass")
public void testKotlinLocalClass() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/hierarchy/calls/callers/kotlinLocalClass/");