[Analysis API FIR] fix KDoc reference resolve for aliased imports

This commit is contained in:
Ilya Kirillov
2022-07-27 22:03:48 +02:00
parent 24c9b8e006
commit 556add72ff
9 changed files with 97 additions and 3 deletions
@@ -1049,6 +1049,22 @@ public class Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exte
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/imports")
@TestDataPath("$PROJECT_ROOT")
public class Imports {
@Test
public void testAllFilesPresentInImports() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/imports"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Test
@TestMetadata("TypeAliasedImport.kt")
public void testTypeAliasedImport() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/imports/TypeAliasedImport.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
@TestDataPath("$PROJECT_ROOT")
@@ -20,6 +20,7 @@ internal class NonStarImport(
override val relativeClassName: FqName?,
override val resolvedClassId: ClassId?,
val callableName: Name?,
val aliasName: Name?,
) : Import()
internal class StarImport(
@@ -38,7 +38,8 @@ internal class KtFirNonStarImportingScope(
import.packageFqName,
importedClassId?.relativeClassName,
importedClassId,
import.importedName
import.importedName,
import.aliasName,
).let(::add)
}
}
@@ -60,10 +61,10 @@ internal class KtFirNonStarImportingScope(
override fun getConstructors(): Sequence<KtConstructorSymbol> = withValidityAssertion { emptySequence() }
override fun getPossibleCallableNames(): Set<Name> = withValidityAssertion {
imports.mapNotNullTo(hashSetOf()) { it.callableName }
imports.flatMapTo(hashSetOf()) { listOfNotNull(it.callableName, it.aliasName) }
}
override fun getPossibleClassifierNames(): Set<Name> = withValidityAssertion {
imports.mapNotNullTo((hashSetOf())) { it.relativeClassName?.shortName() }
imports.flatMapTo((hashSetOf())) { listOfNotNull(it.relativeClassName?.shortName(), it.aliasName) }
}
}
@@ -1049,6 +1049,22 @@ public class FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated ex
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/imports")
@TestDataPath("$PROJECT_ROOT")
public class Imports {
@Test
public void testAllFilesPresentInImports() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/imports"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Test
@TestMetadata("TypeAliasedImport.kt")
public void testTypeAliasedImport() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/imports/TypeAliasedImport.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
@TestDataPath("$PROJECT_ROOT")
@@ -939,6 +939,22 @@ public class FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerate
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc"), Pattern.compile("^([^.]+)\\.kt$"), null, true, "withErrors");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/imports")
@TestDataPath("$PROJECT_ROOT")
public class Imports {
@Test
public void testAllFilesPresentInImports() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/imports"), Pattern.compile("^([^.]+)\\.kt$"), null, true, "withErrors");
}
@Test
@TestMetadata("TypeAliasedImport.kt")
public void testTypeAliasedImport() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/imports/TypeAliasedImport.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
@TestDataPath("$PROJECT_ROOT")
@@ -1049,6 +1049,22 @@ public class FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exten
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/imports")
@TestDataPath("$PROJECT_ROOT")
public class Imports {
@Test
public void testAllFilesPresentInImports() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/imports"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Test
@TestMetadata("TypeAliasedImport.kt")
public void testTypeAliasedImport() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/imports/TypeAliasedImport.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
@TestDataPath("$PROJECT_ROOT")
@@ -1049,6 +1049,22 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerate
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/imports")
@TestDataPath("$PROJECT_ROOT")
public class Imports {
@Test
public void testAllFilesPresentInImports() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/imports"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Test
@TestMetadata("TypeAliasedImport.kt")
public void testTypeAliasedImport() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/imports/TypeAliasedImport.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
@TestDataPath("$PROJECT_ROOT")
@@ -0,0 +1,8 @@
import kotlin.collections.listOf as lst
/**
* [ls<caret>t]
*/
fun x() {
}
@@ -0,0 +1,4 @@
Resolved to:
0: (in kotlin.collections) fun <T> listOf(element: T): kotlin.collections.List<T>
1: (in kotlin.collections) fun <T> listOf(vararg elements: T): kotlin.collections.List<T>
2: (in kotlin.collections) inline fun <T> listOf(): kotlin.collections.List<T>