[Analysis API FIR] fix reference resolve to reified type parameter

This commit is contained in:
Ilya Kirillov
2023-07-27 17:15:53 +02:00
committed by Space Team
parent b3236c5824
commit de4224296d
8 changed files with 43 additions and 0 deletions
@@ -1987,6 +1987,12 @@ public class Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exte
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
}
@Test
@TestMetadata("reifiedTypeParameterInBody.kt")
public void testReifiedTypeParameterInBody() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt");
}
@Test
@TestMetadata("reified_argumentInFunctionalType.kt")
public void testReified_argumentInFunctionalType() throws Exception {
@@ -241,6 +241,7 @@ internal object FirReferenceResolveHelper {
is FirNamedArgumentExpression -> getSymbolsByNameArgumentExpression(expression, analysisSession, symbolBuilder)
is FirEqualityOperatorCall -> getSymbolsByEqualsName(fir, session, analysisSession, symbolBuilder)
is FirTypeParameter -> getSybmolsByTypeParameter(symbolBuilder, fir)
is FirResolvedReifiedParameterReference -> getSymbolsByResolvedReifiedTypeParameterReference(symbolBuilder, fir)
else -> handleUnknownFirElement(expression, analysisSession, session, symbolBuilder)
}
}
@@ -461,6 +462,14 @@ internal object FirReferenceResolveHelper {
return listOf(symbolBuilder.buildSymbol(fir.symbol))
}
private fun getSymbolsByResolvedReifiedTypeParameterReference(
symbolBuilder: KtSymbolByFirBuilder,
fir: FirResolvedReifiedParameterReference
): List<KtSymbol> {
return listOf(symbolBuilder.buildSymbol(fir.symbol))
}
private fun getSymbolsByResolvedImport(
expression: KtSimpleNameExpression,
builder: KtSymbolByFirBuilder,
@@ -1987,6 +1987,12 @@ public class FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated ex
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
}
@Test
@TestMetadata("reifiedTypeParameterInBody.kt")
public void testReifiedTypeParameterInBody() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt");
}
@Test
@TestMetadata("reified_argumentInFunctionalType.kt")
public void testReified_argumentInFunctionalType() throws Exception {
@@ -1855,6 +1855,12 @@ public class FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerate
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
}
@Test
@TestMetadata("reifiedTypeParameterInBody.kt")
public void testReifiedTypeParameterInBody() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt");
}
@Test
@TestMetadata("reified_argumentInFunctionalType.kt")
public void testReified_argumentInFunctionalType() throws Exception {
@@ -1987,6 +1987,12 @@ public class FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exten
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
}
@Test
@TestMetadata("reifiedTypeParameterInBody.kt")
public void testReifiedTypeParameterInBody() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt");
}
@Test
@TestMetadata("reified_argumentInFunctionalType.kt")
public void testReified_argumentInFunctionalType() throws Exception {
@@ -1987,6 +1987,12 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerate
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
}
@Test
@TestMetadata("reifiedTypeParameterInBody.kt")
public void testReifiedTypeParameterInBody() throws Exception {
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt");
}
@Test
@TestMetadata("reified_argumentInFunctionalType.kt")
public void testReified_argumentInFunctionalType() throws Exception {
@@ -0,0 +1,2 @@
inline fun <reified T> labeledComponent(labelText: String): T = <caret>T::class.java.getConstructor().newInstance()
@@ -0,0 +1,2 @@
Resolved to:
0: reified T