diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 0543ec33422..ddce384c4d2 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1271,6 +1271,52 @@ public class Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exte } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations") + @TestDataPath("$PROJECT_ROOT") + public class JavaDeclarations { + @Test + public void testAllFilesPresentInJavaDeclarations() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("StaticFieldQualified.kt") + public void testStaticFieldQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionFromBaseClass.kt") + public void testStaticFunctionFromBaseClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt"); + } + + @Test + @TestMetadata("StaticFunctionFullyQualified.kt") + public void testStaticFunctionFullyQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualified.kt") + public void testStaticFunctionQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt") + public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt") + public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt index 0a506ff667e..9272449382a 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt @@ -168,7 +168,13 @@ internal object KDocReferenceResolver { .fold(scope) { currentScope, fqNamePart -> currentScope .getClassifierSymbols(fqNamePart) - .mapNotNull { (it as? KtSymbolWithMembers)?.getDeclaredMemberScope() } + .filterIsInstance() + .flatMap { + listOf( + it.getDeclaredMemberScope(), + it.getStaticMemberScope(), + ) + } .toList() .asCompositeScope() } @@ -185,7 +191,7 @@ internal object KDocReferenceResolver { } context(KtAnalysisSession) - private fun getNonImportedSymbolsByFullyQualifiedName(fqName: FqName): List = buildList { + private fun getNonImportedSymbolsByFullyQualifiedName(fqName: FqName): Collection = buildSet { generateNameInterpretations(fqName).forEach { interpretation -> collectSymbolsByFqNameInterpretation(interpretation) } @@ -229,7 +235,13 @@ internal object KDocReferenceResolver { else -> { getClassOrObjectSymbolByClassId(classId) - ?.getDeclaredMemberScope() + ?.let { + listOf( + it.getDeclaredMemberScope(), + it.getStaticMemberScope(), + ) + } + ?.asCompositeScope() ?.getCallableSymbols(callableId.callableName) ?.let(::addAll) } diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java index a153aef6ad7..aab9acc878a 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1271,6 +1271,52 @@ public class FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated ex } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations") + @TestDataPath("$PROJECT_ROOT") + public class JavaDeclarations { + @Test + public void testAllFilesPresentInJavaDeclarations() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("StaticFieldQualified.kt") + public void testStaticFieldQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionFromBaseClass.kt") + public void testStaticFunctionFromBaseClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt"); + } + + @Test + @TestMetadata("StaticFunctionFullyQualified.kt") + public void testStaticFunctionFullyQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualified.kt") + public void testStaticFunctionQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt") + public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt") + public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java index ff717fd9c1c..2c9d5a89453 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java @@ -1155,6 +1155,52 @@ public class FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerate } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations") + @TestDataPath("$PROJECT_ROOT") + public class JavaDeclarations { + @Test + public void testAllFilesPresentInJavaDeclarations() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true, "withErrors"); + } + + @Test + @TestMetadata("StaticFieldQualified.kt") + public void testStaticFieldQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionFromBaseClass.kt") + public void testStaticFunctionFromBaseClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt"); + } + + @Test + @TestMetadata("StaticFunctionFullyQualified.kt") + public void testStaticFunctionFullyQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualified.kt") + public void testStaticFunctionQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt") + public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt") + public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index acfe3e4fa75..1b35c65d7d7 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1271,6 +1271,52 @@ public class FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exten } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations") + @TestDataPath("$PROJECT_ROOT") + public class JavaDeclarations { + @Test + public void testAllFilesPresentInJavaDeclarations() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("StaticFieldQualified.kt") + public void testStaticFieldQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionFromBaseClass.kt") + public void testStaticFunctionFromBaseClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt"); + } + + @Test + @TestMetadata("StaticFunctionFullyQualified.kt") + public void testStaticFunctionFullyQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualified.kt") + public void testStaticFunctionQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt") + public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt") + public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 77818fa1b0a..b47d380d575 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1271,6 +1271,52 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerate } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations") + @TestDataPath("$PROJECT_ROOT") + public class JavaDeclarations { + @Test + public void testAllFilesPresentInJavaDeclarations() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("StaticFieldQualified.kt") + public void testStaticFieldQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionFromBaseClass.kt") + public void testStaticFunctionFromBaseClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt"); + } + + @Test + @TestMetadata("StaticFunctionFullyQualified.kt") + public void testStaticFunctionFullyQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualified.kt") + public void testStaticFunctionQualified() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt") + public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt"); + } + + @Test + @TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt") + public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt new file mode 100644 index 00000000000..3204fca7fdc --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt @@ -0,0 +1,14 @@ +// FILE: main.kt +import dependency.JavaClass + +/** + * [JavaClass.staticField] + */ +fun test() {} + +// FILE: dependency/JavaClass.java +package dependency; + +public class JavaClass { + public static final int staticField = 0; +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.txt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.txt new file mode 100644 index 00000000000..496459960de --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.txt @@ -0,0 +1,2 @@ +Resolved to: +0: (in dependency.JavaClass) val staticField: kotlin.Int \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt new file mode 100644 index 00000000000..618b28beb94 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt @@ -0,0 +1,18 @@ +// UNRESOLVED_REFERENCE +// FILE: main.kt +import dependency.JavaBase + +class KotlinChild : JavaBase() { + /** + * [staticFun] + */ + fun test() {} +} + + +// FILE: dependency/JavaBase.java +package dependency; + +public class JavaBase { + public static void staticFun() {} +} diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt new file mode 100644 index 00000000000..001106718b2 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt @@ -0,0 +1,12 @@ +// FILE: main.kt +/** + * [dependency.JavaClass.staticFun] + */ +fun test() {} + +// FILE: dependency/JavaClass.java +package dependency; + +public class JavaClass { + public static void staticFun() {} +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.txt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.txt new file mode 100644 index 00000000000..e1b39c21dcc --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.txt @@ -0,0 +1,2 @@ +Resolved to: +0: (in dependency.JavaClass) open fun staticFun() \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt new file mode 100644 index 00000000000..861287cf2c4 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt @@ -0,0 +1,14 @@ +// FILE: main.kt +import dependency.JavaClass + +/** + * [JavaClass.staticFun] + */ +fun test() {} + +// FILE: dependency/JavaClass.java +package dependency; + +public class JavaClass { + public static void staticFun() {} +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.txt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.txt new file mode 100644 index 00000000000..e1b39c21dcc --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.txt @@ -0,0 +1,2 @@ +Resolved to: +0: (in dependency.JavaClass) open fun staticFun() \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt new file mode 100644 index 00000000000..723dade88fe --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt @@ -0,0 +1,20 @@ +// FILE: main.kt +import dependency.JavaChild + +/** + * [JavaChild.staticFun] + */ +fun test() {} + +// FILE: dependency/JavaBase.java +package dependency; + +public class JavaBase { + public static void staticFun() {} +} + +// FILE: dependency/JavaChild.java +package dependency; + +public class JavaChild extends JavaBase { +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.txt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.txt new file mode 100644 index 00000000000..beeefb032c0 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.txt @@ -0,0 +1,2 @@ +Resolved to: +0: (in dependency.JavaBase) open fun staticFun() \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt new file mode 100644 index 00000000000..6075feabbad --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt @@ -0,0 +1,17 @@ +// UNRESOLVED_REFERENCE +// FILE: main.kt +import dependency.JavaBase + +class KotlinChild : JavaBase() + +/** + * [KotlinChild.staticFun] + */ +fun test() {} + +// FILE: dependency/JavaBase.java +package dependency; + +public class JavaBase { + public static void staticFun() {} +}