[Analysis API] Provide type mapping for callable references

Strictly speaking, callable references are not calls. However, type
arguments are still inferred for references, and 'KtCall' is the only
place in Analysis API that exposes call-substituted types.

^KT-66485 Fixed
This commit is contained in:
Yan Zhulanow
2024-02-22 02:17:14 +09:00
committed by Space Team
parent 6028595ce4
commit 0147d725fb
45 changed files with 940 additions and 6 deletions
@@ -1010,6 +1010,130 @@ public class FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated ext
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences")
@TestDataPath("$PROJECT_ROOT")
public class CallableReferences {
@Test
public void testAllFilesPresentInCallableReferences() {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences"), Pattern.compile("^(.+)\\.kt$"), null, true, "withTestCompilerPluginEnabled");
}
@Test
@TestMetadata("annotationConstructor.kt")
public void testAnnotationConstructor() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/annotationConstructor.kt");
}
@Test
@TestMetadata("boundMemberExtensionFunction.kt")
public void testBoundMemberExtensionFunction() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/boundMemberExtensionFunction.kt");
}
@Test
@TestMetadata("boundMemberFunction.kt")
public void testBoundMemberFunction() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/boundMemberFunction.kt");
}
@Test
@TestMetadata("boundMemberProperty.kt")
public void testBoundMemberProperty() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/boundMemberProperty.kt");
}
@Test
@TestMetadata("boundTopLevelExtensionFunction.kt")
public void testBoundTopLevelExtensionFunction() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/boundTopLevelExtensionFunction.kt");
}
@Test
@TestMetadata("boundTopLevelExtensionProperty.kt")
public void testBoundTopLevelExtensionProperty() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/boundTopLevelExtensionProperty.kt");
}
@Test
@TestMetadata("constructor.kt")
public void testConstructor() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/constructor.kt");
}
@Test
@TestMetadata("genericParameterType.kt")
public void testGenericParameterType() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/genericParameterType.kt");
}
@Test
@TestMetadata("genericParameterTypeGenericConsumer.kt")
public void testGenericParameterTypeGenericConsumer() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/genericParameterTypeGenericConsumer.kt");
}
@Test
@TestMetadata("genericReturnType.kt")
public void testGenericReturnType() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/genericReturnType.kt");
}
@Test
@TestMetadata("genericReturnTypeGenericConsumer.kt")
public void testGenericReturnTypeGenericConsumer() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/genericReturnTypeGenericConsumer.kt");
}
@Test
@TestMetadata("memberExtensionProperty.kt")
public void testMemberExtensionProperty() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/memberExtensionProperty.kt");
}
@Test
@TestMetadata("memberFunction.kt")
public void testMemberFunction() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/memberFunction.kt");
}
@Test
@TestMetadata("memberProperty.kt")
public void testMemberProperty() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/memberProperty.kt");
}
@Test
@TestMetadata("simple.kt")
public void testSimple() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/simple.kt");
}
@Test
@TestMetadata("topLevelExtensionFunction.kt")
public void testTopLevelExtensionFunction() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/topLevelExtensionFunction.kt");
}
@Test
@TestMetadata("topLevelExtensionProperty.kt")
public void testTopLevelExtensionProperty() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/topLevelExtensionProperty.kt");
}
@Test
@TestMetadata("topLevelFunction.kt")
public void testTopLevelFunction() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/topLevelFunction.kt");
}
@Test
@TestMetadata("topLevelProperty.kt")
public void testTopLevelProperty() {
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/callableReferences/topLevelProperty.kt");
}
}
@Nested
@TestMetadata("analysis/analysis-api/testData/components/callResolver/resolveCall/invalidCode")
@TestDataPath("$PROJECT_ROOT")