diff --git a/idea/src/org/jetbrains/kotlin/idea/hierarchy/calls/KotlinCallerTreeStructure.kt b/idea/src/org/jetbrains/kotlin/idea/hierarchy/calls/KotlinCallerTreeStructure.kt
index 8efa5bda2d8..630519983c4 100644
--- a/idea/src/org/jetbrains/kotlin/idea/hierarchy/calls/KotlinCallerTreeStructure.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/hierarchy/calls/KotlinCallerTreeStructure.kt
@@ -14,6 +14,7 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMember
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiReference
+import com.intellij.psi.impl.source.resolve.JavaResolveUtil
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.util.ArrayUtil
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
@@ -96,7 +97,10 @@ class KotlinCallerTreeStructure(
// If reference belongs to property initializer, show enclosing declaration instead
elementToSearch.processAllUsages(findOptions) {
- processReference(it.reference, it.element ?: return@processAllUsages, nodeDescriptor, callerToDescriptorMap, false)
+ val refElement = it.element
+ if (refElement != null && !JavaResolveUtil.isInJavaDoc(refElement)) {
+ processReference(it.reference, refElement, nodeDescriptor, callerToDescriptorMap, false)
+ }
}
return callerToDescriptorMap.values
@@ -129,4 +133,4 @@ class KotlinCallerTreeStructure(
}
override fun isAlwaysShowPlus() = true
-}
\ No newline at end of file
+}
diff --git a/idea/testData/hierarchy/calls/callers/insideJavadoc/InsideJavadoc_verification.xml b/idea/testData/hierarchy/calls/callers/insideJavadoc/InsideJavadoc_verification.xml
new file mode 100644
index 00000000000..33f43154523
--- /dev/null
+++ b/idea/testData/hierarchy/calls/callers/insideJavadoc/InsideJavadoc_verification.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/idea/testData/hierarchy/calls/callers/insideJavadoc/main0.kt b/idea/testData/hierarchy/calls/callers/insideJavadoc/main0.kt
new file mode 100644
index 00000000000..83f95c0f5d6
--- /dev/null
+++ b/idea/testData/hierarchy/calls/callers/insideJavadoc/main0.kt
@@ -0,0 +1,3 @@
+open class K {
+ public fun persist() {}
+}
diff --git a/idea/testData/hierarchy/calls/callers/insideJavadoc/main1.java b/idea/testData/hierarchy/calls/callers/insideJavadoc/main1.java
new file mode 100644
index 00000000000..ee4f243fc62
--- /dev/null
+++ b/idea/testData/hierarchy/calls/callers/insideJavadoc/main1.java
@@ -0,0 +1,8 @@
+class X extends K {
+ /**
+ * see {@link #persist()}
+ */
+ int f() {
+ return 0;
+ }
+}
diff --git a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java
index 8247a2b4b95..c75e34d9b9a 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java
@@ -314,6 +314,11 @@ public class HierarchyTestGenerated extends AbstractHierarchyTest {
runTest("idea/testData/hierarchy/calls/callers/callInsideLambda/");
}
+ @TestMetadata("insideJavadoc")
+ public void testInsideJavadoc() throws Exception {
+ runTest("idea/testData/hierarchy/calls/callers/insideJavadoc/");
+ }
+
@TestMetadata("kotlinClass")
public void testKotlinClass() throws Exception {
runTest("idea/testData/hierarchy/calls/callers/kotlinClass/");