[Analysis API FIR] fix reference resolve to reified type parameter
This commit is contained in:
committed by
Space Team
parent
b3236c5824
commit
de4224296d
+6
@@ -1987,6 +1987,12 @@ public class Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exte
|
|||||||
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
|
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
|
@Test
|
||||||
@TestMetadata("reified_argumentInFunctionalType.kt")
|
@TestMetadata("reified_argumentInFunctionalType.kt")
|
||||||
public void testReified_argumentInFunctionalType() throws Exception {
|
public void testReified_argumentInFunctionalType() throws Exception {
|
||||||
|
|||||||
+9
@@ -241,6 +241,7 @@ internal object FirReferenceResolveHelper {
|
|||||||
is FirNamedArgumentExpression -> getSymbolsByNameArgumentExpression(expression, analysisSession, symbolBuilder)
|
is FirNamedArgumentExpression -> getSymbolsByNameArgumentExpression(expression, analysisSession, symbolBuilder)
|
||||||
is FirEqualityOperatorCall -> getSymbolsByEqualsName(fir, session, analysisSession, symbolBuilder)
|
is FirEqualityOperatorCall -> getSymbolsByEqualsName(fir, session, analysisSession, symbolBuilder)
|
||||||
is FirTypeParameter -> getSybmolsByTypeParameter(symbolBuilder, fir)
|
is FirTypeParameter -> getSybmolsByTypeParameter(symbolBuilder, fir)
|
||||||
|
is FirResolvedReifiedParameterReference -> getSymbolsByResolvedReifiedTypeParameterReference(symbolBuilder, fir)
|
||||||
else -> handleUnknownFirElement(expression, analysisSession, session, symbolBuilder)
|
else -> handleUnknownFirElement(expression, analysisSession, session, symbolBuilder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -461,6 +462,14 @@ internal object FirReferenceResolveHelper {
|
|||||||
return listOf(symbolBuilder.buildSymbol(fir.symbol))
|
return listOf(symbolBuilder.buildSymbol(fir.symbol))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getSymbolsByResolvedReifiedTypeParameterReference(
|
||||||
|
symbolBuilder: KtSymbolByFirBuilder,
|
||||||
|
fir: FirResolvedReifiedParameterReference
|
||||||
|
): List<KtSymbol> {
|
||||||
|
return listOf(symbolBuilder.buildSymbol(fir.symbol))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun getSymbolsByResolvedImport(
|
private fun getSymbolsByResolvedImport(
|
||||||
expression: KtSimpleNameExpression,
|
expression: KtSimpleNameExpression,
|
||||||
builder: KtSymbolByFirBuilder,
|
builder: KtSymbolByFirBuilder,
|
||||||
|
|||||||
+6
@@ -1987,6 +1987,12 @@ public class FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated ex
|
|||||||
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
|
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
|
@Test
|
||||||
@TestMetadata("reified_argumentInFunctionalType.kt")
|
@TestMetadata("reified_argumentInFunctionalType.kt")
|
||||||
public void testReified_argumentInFunctionalType() throws Exception {
|
public void testReified_argumentInFunctionalType() throws Exception {
|
||||||
|
|||||||
+6
@@ -1855,6 +1855,12 @@ public class FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerate
|
|||||||
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
|
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
|
@Test
|
||||||
@TestMetadata("reified_argumentInFunctionalType.kt")
|
@TestMetadata("reified_argumentInFunctionalType.kt")
|
||||||
public void testReified_argumentInFunctionalType() throws Exception {
|
public void testReified_argumentInFunctionalType() throws Exception {
|
||||||
|
|||||||
+6
@@ -1987,6 +1987,12 @@ public class FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exten
|
|||||||
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
|
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
|
@Test
|
||||||
@TestMetadata("reified_argumentInFunctionalType.kt")
|
@TestMetadata("reified_argumentInFunctionalType.kt")
|
||||||
public void testReified_argumentInFunctionalType() throws Exception {
|
public void testReified_argumentInFunctionalType() throws Exception {
|
||||||
|
|||||||
+6
@@ -1987,6 +1987,12 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerate
|
|||||||
runTest("analysis/analysis-api/testData/referenceResolve/typeParameter/multipleBounds.kt");
|
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
|
@Test
|
||||||
@TestMetadata("reified_argumentInFunctionalType.kt")
|
@TestMetadata("reified_argumentInFunctionalType.kt")
|
||||||
public void testReified_argumentInFunctionalType() throws Exception {
|
public void testReified_argumentInFunctionalType() throws Exception {
|
||||||
|
|||||||
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
inline fun <reified T> labeledComponent(labelText: String): T = <caret>T::class.java.getConstructor().newInstance()
|
||||||
|
|
||||||
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
Resolved to:
|
||||||
|
0: reified T
|
||||||
Reference in New Issue
Block a user