From 5e56845ce09b58bd9dcc968bc9da8ac68092bc64 Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Fri, 27 Jan 2023 16:13:03 +0100 Subject: [PATCH] Analysis API: Add tests for KT-54648 --- ...sSourceModuleResolveCallTestGenerated.java | 18 +++++++++++ ...sSourceModuleResolveCallTestGenerated.java | 18 +++++++++++ ...sSourceModuleResolveCallTestGenerated.java | 18 +++++++++++ .../resolveCall/compoundAssignOnGenericVar.kt | 10 ++++++ .../compoundAssignOnGenericVar.txt | 19 +++++++++++ .../kotlinPropertySetterGeneric.kt | 10 ++++++ .../kotlinPropertySetterGeneric.txt | 19 +++++++++++ .../prefixUnaryOperatorOnGenericVar.kt | 10 ++++++ .../prefixUnaryOperatorOnGenericVar.txt | 32 +++++++++++++++++++ 9 files changed, 154 insertions(+) create mode 100644 analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.kt create mode 100644 analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.txt create mode 100644 analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.kt create mode 100644 analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.txt create mode 100644 analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.kt create mode 100644 analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.txt diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/callResolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/callResolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java index 3e68dacba61..742099d78dc 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/callResolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/callResolver/Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated.java @@ -262,6 +262,12 @@ public class Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated extends A runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/comparisonCall.kt"); } + @Test + @TestMetadata("compoundAssignOnGenericVar.kt") + public void testCompoundAssignOnGenericVar() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.kt"); + } + @Test @TestMetadata("compoundAssignOnVal.kt") public void testCompoundAssignOnVal() throws Exception { @@ -634,6 +640,12 @@ public class Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated extends A runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetter.kt"); } + @Test + @TestMetadata("kotlinPropertySetterGeneric.kt") + public void testKotlinPropertySetterGeneric() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.kt"); + } + @Test @TestMetadata("kotlinPropertySetter_unqualified.kt") public void testKotlinPropertySetter_unqualified() throws Exception { @@ -676,6 +688,12 @@ public class Fe10IdeNormalAnalysisSourceModuleResolveCallTestGenerated extends A runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/postfixUnaryOperatorWithArrayAccessConvention_complexDispatcher.kt"); } + @Test + @TestMetadata("prefixUnaryOperatorOnGenericVar.kt") + public void testPrefixUnaryOperatorOnGenericVar() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.kt"); + } + @Test @TestMetadata("prefixUnaryOperatorOnVar.kt") public void testPrefixUnaryOperatorOnVar() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/callResolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/callResolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java index d1fa5a23ff0..bc0208f6a8a 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/callResolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/callResolver/FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated.java @@ -262,6 +262,12 @@ public class FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated extends Ab runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/comparisonCall.kt"); } + @Test + @TestMetadata("compoundAssignOnGenericVar.kt") + public void testCompoundAssignOnGenericVar() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.kt"); + } + @Test @TestMetadata("compoundAssignOnVal.kt") public void testCompoundAssignOnVal() throws Exception { @@ -634,6 +640,12 @@ public class FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated extends Ab runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetter.kt"); } + @Test + @TestMetadata("kotlinPropertySetterGeneric.kt") + public void testKotlinPropertySetterGeneric() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.kt"); + } + @Test @TestMetadata("kotlinPropertySetter_unqualified.kt") public void testKotlinPropertySetter_unqualified() throws Exception { @@ -676,6 +688,12 @@ public class FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated extends Ab runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/postfixUnaryOperatorWithArrayAccessConvention_complexDispatcher.kt"); } + @Test + @TestMetadata("prefixUnaryOperatorOnGenericVar.kt") + public void testPrefixUnaryOperatorOnGenericVar() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.kt"); + } + @Test @TestMetadata("prefixUnaryOperatorOnVar.kt") public void testPrefixUnaryOperatorOnVar() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/callResolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/callResolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java index 24f676de3d1..66d5bc61b93 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/callResolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/callResolver/FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated.java @@ -262,6 +262,12 @@ public class FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated ext runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/comparisonCall.kt"); } + @Test + @TestMetadata("compoundAssignOnGenericVar.kt") + public void testCompoundAssignOnGenericVar() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.kt"); + } + @Test @TestMetadata("compoundAssignOnVal.kt") public void testCompoundAssignOnVal() throws Exception { @@ -634,6 +640,12 @@ public class FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated ext runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetter.kt"); } + @Test + @TestMetadata("kotlinPropertySetterGeneric.kt") + public void testKotlinPropertySetterGeneric() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.kt"); + } + @Test @TestMetadata("kotlinPropertySetter_unqualified.kt") public void testKotlinPropertySetter_unqualified() throws Exception { @@ -676,6 +688,12 @@ public class FirStandaloneNormalAnalysisSourceModuleResolveCallTestGenerated ext runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/postfixUnaryOperatorWithArrayAccessConvention_complexDispatcher.kt"); } + @Test + @TestMetadata("prefixUnaryOperatorOnGenericVar.kt") + public void testPrefixUnaryOperatorOnGenericVar() throws Exception { + runTest("analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.kt"); + } + @Test @TestMetadata("prefixUnaryOperatorOnVar.kt") public void testPrefixUnaryOperatorOnVar() throws Exception { diff --git a/analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.kt b/analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.kt new file mode 100644 index 00000000000..ad724392da0 --- /dev/null +++ b/analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.kt @@ -0,0 +1,10 @@ +fun call { + val foo = CInt32VarX() + foo.value += 42 +} + +class CInt32VarX + +var CInt32VarX.value: T + get() = TODO() + set(value) {} diff --git a/analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.txt b/analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.txt new file mode 100644 index 00000000000..0e6f370cb7d --- /dev/null +++ b/analysis/analysis-api/testData/components/callResolver/resolveCall/compoundAssignOnGenericVar.txt @@ -0,0 +1,19 @@ +KtSuccessCallInfo: + call = KtSimpleVariableAccessCall: + partiallyAppliedSymbol = KtPartiallyAppliedSymbol: + dispatchReceiver = null + extensionReceiver = KtExplicitReceiverValue: + expression = foo + isSafeNavigation = false + type = CInt32VarX + signature = KtVariableLikeSignature: + name = value + receiverType = CInt32VarX + returnType = kotlin.Int + symbol = var value: T + callableIdIfNonLocal = /value + simpleAccess = Read: + + typeArgumentsMapping = { + T -> (kotlin.Int) + } diff --git a/analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.kt b/analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.kt new file mode 100644 index 00000000000..8f6457ec5cf --- /dev/null +++ b/analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.kt @@ -0,0 +1,10 @@ +fun call { + val foo = CInt32VarX() + foo.value = 42 +} + +class CInt32VarX + +var CInt32VarX.value: T + get() = TODO() + set(value) {} diff --git a/analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.txt b/analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.txt new file mode 100644 index 00000000000..1ba31358946 --- /dev/null +++ b/analysis/analysis-api/testData/components/callResolver/resolveCall/kotlinPropertySetterGeneric.txt @@ -0,0 +1,19 @@ +KtSuccessCallInfo: + call = KtSimpleVariableAccessCall: + partiallyAppliedSymbol = KtPartiallyAppliedSymbol: + dispatchReceiver = null + extensionReceiver = KtExplicitReceiverValue: + expression = foo + isSafeNavigation = false + type = CInt32VarX + signature = KtVariableLikeSignature: + name = value + receiverType = CInt32VarX + returnType = kotlin.Int + symbol = var value: T + callableIdIfNonLocal = /value + simpleAccess = Write: + value = 42 + typeArgumentsMapping = { + T -> (kotlin.Int) + } diff --git a/analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.kt b/analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.kt new file mode 100644 index 00000000000..0582ad72f75 --- /dev/null +++ b/analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.kt @@ -0,0 +1,10 @@ +fun call { + val foo = CInt32VarX() + ++foo.value +} + +class CInt32VarX + +var CInt32VarX.value: T + get() = TODO() + set(value) {} diff --git a/analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.txt b/analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.txt new file mode 100644 index 00000000000..8139868c846 --- /dev/null +++ b/analysis/analysis-api/testData/components/callResolver/resolveCall/prefixUnaryOperatorOnGenericVar.txt @@ -0,0 +1,32 @@ +KtSuccessCallInfo: + call = KtCompoundVariableAccessCall: + compoundAccess = IncOrDecOperation: + kind = INC + precedence = PREFIX + operationPartiallyAppliedSymbol = KtPartiallyAppliedSymbol: + dispatchReceiver = KtExplicitReceiverValue: + expression = foo.value + isSafeNavigation = false + type = kotlin.Int + extensionReceiver = null + signature = KtFunctionLikeSignature: + receiverType = null + returnType = kotlin.Int + symbol = kotlin/Int.inc(: kotlin.Int): kotlin.Int + valueParameters = [] + callableIdIfNonLocal = kotlin/Int.inc + partiallyAppliedSymbol = KtPartiallyAppliedSymbol: + dispatchReceiver = null + extensionReceiver = KtExplicitReceiverValue: + expression = foo + isSafeNavigation = false + type = CInt32VarX + signature = KtVariableLikeSignature: + name = value + receiverType = CInt32VarX + returnType = kotlin.Int + symbol = var value: T + callableIdIfNonLocal = /value + typeArgumentsMapping = { + T -> (kotlin.Int) + }