[Analysis API FIR] support call expression resolve in class literal
KTIJ-23272
This commit is contained in:
+6
@@ -520,6 +520,12 @@ public class Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated extends A
|
||||
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/intArrayOfInAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassReference.kt")
|
||||
public void testJavaClassReference() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/javaClassReference.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaFunctionCall.kt")
|
||||
public void testJavaFunctionCall() throws Exception {
|
||||
|
||||
+2
-2
@@ -222,7 +222,7 @@ internal class KtFirCallResolver(
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves call expressions like `Foo<Bar>` or `test.Foo<Bar>` in calls like `Foo<Bar>::foo` and `test.Foo<Bar>::foo`.
|
||||
* Resolves call expressions like `Foo<Bar>` or `test.Foo<Bar>` in calls like `Foo<Bar>::foo`, `test.Foo<Bar>::foo` and class literals like `Foo<Bar>`::class.java.
|
||||
*
|
||||
* We have a separate [KtGenericTypeQualifier] type of [KtCall].
|
||||
*/
|
||||
@@ -233,7 +233,7 @@ internal class KtFirCallResolver(
|
||||
val call = psiElement.getPossiblyQualifiedCallExpression() ?: return null
|
||||
if (call.typeArgumentList == null || call.valueArgumentList != null) return null
|
||||
|
||||
val parentReferenceExpression = psiElement.parent as? KtCallableReferenceExpression ?: return null
|
||||
val parentReferenceExpression = psiElement.parent as? KtDoubleColonExpression ?: return null
|
||||
if (parentReferenceExpression.lhs != psiElement) return null
|
||||
|
||||
return KtSuccessCallInfo(KtGenericTypeQualifier(token, psiElement))
|
||||
|
||||
+6
@@ -520,6 +520,12 @@ public class FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated extends Ab
|
||||
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/intArrayOfInAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassReference.kt")
|
||||
public void testJavaClassReference() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/javaClassReference.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaFunctionCall.kt")
|
||||
public void testJavaFunctionCall() throws Exception {
|
||||
|
||||
+6
@@ -520,6 +520,12 @@ public class FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated ext
|
||||
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/intArrayOfInAnnotation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassReference.kt")
|
||||
public void testJavaClassReference() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/javaClassReference.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaFunctionCall.kt")
|
||||
public void testJavaFunctionCall() throws Exception {
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun call() {
|
||||
val someVal = <expr>Array<String></expr>::class.java
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
KtSuccessCallInfo:
|
||||
call = KtGenericTypeQualifier:
|
||||
qualifier = Array<String>
|
||||
Reference in New Issue
Block a user