KTIJ-25960 [Analysis API] Resolve static declarations in KDoc
^KTIJ-25960 Fixed
This commit is contained in:
committed by
Space Team
parent
4d91229d79
commit
b4c9a2616e
+46
@@ -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")
|
||||
|
||||
+15
-3
@@ -168,7 +168,13 @@ internal object KDocReferenceResolver {
|
||||
.fold(scope) { currentScope, fqNamePart ->
|
||||
currentScope
|
||||
.getClassifierSymbols(fqNamePart)
|
||||
.mapNotNull { (it as? KtSymbolWithMembers)?.getDeclaredMemberScope() }
|
||||
.filterIsInstance<KtSymbolWithMembers>()
|
||||
.flatMap {
|
||||
listOf(
|
||||
it.getDeclaredMemberScope(),
|
||||
it.getStaticMemberScope(),
|
||||
)
|
||||
}
|
||||
.toList()
|
||||
.asCompositeScope()
|
||||
}
|
||||
@@ -185,7 +191,7 @@ internal object KDocReferenceResolver {
|
||||
}
|
||||
|
||||
context(KtAnalysisSession)
|
||||
private fun getNonImportedSymbolsByFullyQualifiedName(fqName: FqName): List<KtSymbol> = buildList {
|
||||
private fun getNonImportedSymbolsByFullyQualifiedName(fqName: FqName): Collection<KtSymbol> = 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)
|
||||
}
|
||||
|
||||
+46
@@ -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")
|
||||
|
||||
+46
@@ -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")
|
||||
|
||||
+46
@@ -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")
|
||||
|
||||
+46
@@ -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")
|
||||
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// FILE: main.kt
|
||||
import dependency.JavaClass
|
||||
|
||||
/**
|
||||
* [JavaClass.st<caret>aticField]
|
||||
*/
|
||||
fun test() {}
|
||||
|
||||
// FILE: dependency/JavaClass.java
|
||||
package dependency;
|
||||
|
||||
public class JavaClass {
|
||||
public static final int staticField = 0;
|
||||
}
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in dependency.JavaClass) val staticField: kotlin.Int
|
||||
analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
// UNRESOLVED_REFERENCE
|
||||
// FILE: main.kt
|
||||
import dependency.JavaBase
|
||||
|
||||
class KotlinChild : JavaBase() {
|
||||
/**
|
||||
* [st<caret>aticFun]
|
||||
*/
|
||||
fun test() {}
|
||||
}
|
||||
|
||||
|
||||
// FILE: dependency/JavaBase.java
|
||||
package dependency;
|
||||
|
||||
public class JavaBase {
|
||||
public static void staticFun() {}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FILE: main.kt
|
||||
/**
|
||||
* [dependency.JavaClass.st<caret>aticFun]
|
||||
*/
|
||||
fun test() {}
|
||||
|
||||
// FILE: dependency/JavaClass.java
|
||||
package dependency;
|
||||
|
||||
public class JavaClass {
|
||||
public static void staticFun() {}
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in dependency.JavaClass) open fun staticFun()
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// FILE: main.kt
|
||||
import dependency.JavaClass
|
||||
|
||||
/**
|
||||
* [JavaClass.st<caret>aticFun]
|
||||
*/
|
||||
fun test() {}
|
||||
|
||||
// FILE: dependency/JavaClass.java
|
||||
package dependency;
|
||||
|
||||
public class JavaClass {
|
||||
public static void staticFun() {}
|
||||
}
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in dependency.JavaClass) open fun staticFun()
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// FILE: main.kt
|
||||
import dependency.JavaChild
|
||||
|
||||
/**
|
||||
* [JavaChild.st<caret>aticFun]
|
||||
*/
|
||||
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 {
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Resolved to:
|
||||
0: (in dependency.JavaBase) open fun staticFun()
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// UNRESOLVED_REFERENCE
|
||||
// FILE: main.kt
|
||||
import dependency.JavaBase
|
||||
|
||||
class KotlinChild : JavaBase()
|
||||
|
||||
/**
|
||||
* [KotlinChild.st<caret>aticFun]
|
||||
*/
|
||||
fun test() {}
|
||||
|
||||
// FILE: dependency/JavaBase.java
|
||||
package dependency;
|
||||
|
||||
public class JavaBase {
|
||||
public static void staticFun() {}
|
||||
}
|
||||
Reference in New Issue
Block a user