[LL API] Support nested type aliases in file-based declaration provider

This commit is contained in:
Yan Zhulanow
2023-01-20 16:39:18 +09:00
committed by Space Team
parent 14178a9771
commit 9619c695b7
3 changed files with 14 additions and 2 deletions
@@ -65,8 +65,7 @@ internal class FileBasedKotlinDeclarationProvider(private val kotlinFile: KtFile
}
override fun getAllTypeAliasesByClassId(classId: ClassId): Collection<KtTypeAlias> {
val name = classId.relativeClassName.pathSegments().singleOrNull() ?: return emptyList()
return getTopLevelDeclarations(classId.packageFqName, name)
return getClassLikeDeclarationsByClassId(classId).filterIsInstance<KtTypeAlias>().toList()
}
override fun getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName: FqName): Set<Name> {
@@ -0,0 +1,7 @@
// TYPE_ALIAS: test/Foo.Bar
package test
class Foo {
typealias Bar = Foo
}
@@ -36,6 +36,12 @@ public class FileBasedKotlinDeclarationProviderTestGenerated extends AbstractFil
runTest("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/local.kt");
}
@Test
@TestMetadata("nestedTypeAlias.kt")
public void testNestedTypeAlias() throws Exception {
runTest("analysis/low-level-api-fir/testdata/fileBasedDeclarationProvider/nestedTypeAlias.kt");
}
@Test
@TestMetadata("sameNames.kt")
public void testSameNames() throws Exception {