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
+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")
|
||||
|
||||
Reference in New Issue
Block a user