[FIR-IDE] Add DestructuringDeclarationEntry to SymbolProvider

This commit is contained in:
Kristoffer Andersen
2022-05-10 14:11:39 +02:00
committed by Ilya Kirillov
parent b6371a5b9a
commit 3af0e57406
11 changed files with 203 additions and 4 deletions
@@ -122,14 +122,14 @@ internal class KtFirSymbolProvider(
// A KtClassOrObject may also map to an FirEnumEntry. Hence, we need to return null in this case.
if (psi is KtEnumEntry) return null
return firSymbolBuilder.classifierBuilder.buildNamedClassOrObjectSymbol(
psi.resolveToFirSymbolOfType<FirRegularClassSymbol>(firResolveSession)
)
psi.resolveToFirSymbolOfType<FirRegularClassSymbol>(firResolveSession))
}
override fun getPropertyAccessorSymbol(psi: KtPropertyAccessor): KtPropertyAccessorSymbol {
return firSymbolBuilder.callableBuilder.buildPropertyAccessorSymbol(
psi.resolveToFirSymbolOfType<FirPropertyAccessorSymbol>(firResolveSession)
)
psi.resolveToFirSymbolOfType<FirPropertyAccessorSymbol>(firResolveSession))
}
override fun getClassInitializerSymbol(psi: KtClassInitializer): KtClassInitializerSymbol {
@@ -149,4 +149,12 @@ internal class KtFirSymbolProvider(
}
override val ROOT_PACKAGE_SYMBOL: KtPackageSymbol = KtFirPackageSymbol(FqName.ROOT, firResolveSession.project, token)
override fun getDestructuringDeclarationEntrySymbol(psi: KtDestructuringDeclarationEntry): KtLocalVariableSymbol {
return firSymbolBuilder.variableLikeBuilder.buildLocalVariableSymbol(
psi.resolveToFirSymbolOfType<FirPropertySymbol>(
firResolveSession
)
)
}
}
@@ -112,6 +112,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated extends Ab
runTest("analysis/analysis-api/testData/symbols/symbolByPsi/deprecated.kt");
}
@Test
@TestMetadata("destructuringDeclaration.kt")
public void testDestructuringDeclaration() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByPsi/destructuringDeclaration.kt");
}
@Test
@TestMetadata("dynamic.kt")
public void testDynamic() throws Exception {