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 630519983c4..4dc3c9225a0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/hierarchy/calls/KotlinCallerTreeStructure.kt +++ b/idea/src/org/jetbrains/kotlin/idea/hierarchy/calls/KotlinCallerTreeStructure.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.idea.findUsages.KotlinClassFindUsagesOptions import org.jetbrains.kotlin.idea.findUsages.KotlinFunctionFindUsagesOptions import org.jetbrains.kotlin.idea.findUsages.KotlinPropertyFindUsagesOptions import org.jetbrains.kotlin.idea.findUsages.processAllUsages +import org.jetbrains.kotlin.kdoc.psi.api.KDoc import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType @@ -98,7 +99,8 @@ class KotlinCallerTreeStructure( // If reference belongs to property initializer, show enclosing declaration instead elementToSearch.processAllUsages(findOptions) { val refElement = it.element - if (refElement != null && !JavaResolveUtil.isInJavaDoc(refElement)) { + val isInKDoc = PsiTreeUtil.getParentOfType(refElement, KDoc::class.java) != null + if (refElement != null && !JavaResolveUtil.isInJavaDoc(refElement) && !isInKDoc) { processReference(it.reference, refElement, nodeDescriptor, callerToDescriptorMap, false) } } diff --git a/idea/testData/hierarchy/calls/callers/insideKDoc/InsideKDoc_verification.xml b/idea/testData/hierarchy/calls/callers/insideKDoc/InsideKDoc_verification.xml new file mode 100644 index 00000000000..33f43154523 --- /dev/null +++ b/idea/testData/hierarchy/calls/callers/insideKDoc/InsideKDoc_verification.xml @@ -0,0 +1,2 @@ + + diff --git a/idea/testData/hierarchy/calls/callers/insideKDoc/main0.kt b/idea/testData/hierarchy/calls/callers/insideKDoc/main0.kt new file mode 100644 index 00000000000..0d00e977b63 --- /dev/null +++ b/idea/testData/hierarchy/calls/callers/insideKDoc/main0.kt @@ -0,0 +1,12 @@ +open class K { + public fun persist() {} +} + +class Foo : K() { + /** + * [persist] + */ + fun foo() { + + } +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java index c75e34d9b9a..7de0742a893 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java @@ -319,6 +319,11 @@ public class HierarchyTestGenerated extends AbstractHierarchyTest { runTest("idea/testData/hierarchy/calls/callers/insideJavadoc/"); } + @TestMetadata("insideKDoc") + public void testInsideKDoc() throws Exception { + runTest("idea/testData/hierarchy/calls/callers/insideKDoc/"); + } + @TestMetadata("kotlinClass") public void testKotlinClass() throws Exception { runTest("idea/testData/hierarchy/calls/callers/kotlinClass/");