diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 0aef68252cd..15803754c7d 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -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 { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt index f98912e34b5..9334617cf71 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/FirReferenceResolveHelper.kt @@ -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 { + return listOf(symbolBuilder.buildSymbol(fir.symbol)) + } + + private fun getSymbolsByResolvedImport( expression: KtSimpleNameExpression, builder: KtSymbolByFirBuilder, diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java index 0d564ee9548..a8dd5517d29 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -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 { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java index 2c9d5a89453..ee53637c8c5 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java @@ -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 { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 3550b28db88..3a3af033363 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -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 { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 7b2dce20b03..ec4fc8725e6 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -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 { diff --git a/analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt b/analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt new file mode 100644 index 00000000000..86d09eaac25 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.kt @@ -0,0 +1,2 @@ +inline fun labeledComponent(labelText: String): T = T::class.java.getConstructor().newInstance() + diff --git a/analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.txt b/analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.txt new file mode 100644 index 00000000000..c7ca450ea74 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/typeParameter/reifiedTypeParameterInBody.txt @@ -0,0 +1,2 @@ +Resolved to: +0: reified T