From 932ad3e2c1ab6af20642aed9030d159fb6687dcf Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 12 Feb 2024 11:16:48 +0100 Subject: [PATCH] [AA] an expression in delegated super entry is used as expression ^KT-65665 fixed --- ...AnalysisSourceModuleIsUsedAsExpressionTestGenerated.java | 6 ++++++ .../api/fir/components/KtFirExpressionInfoProvider.kt | 3 +++ ...AnalysisSourceModuleIsUsedAsExpressionTestGenerated.java | 6 ++++++ ...AnalysisSourceModuleIsUsedAsExpressionTestGenerated.java | 6 ++++++ ...AnalysisSourceModuleIsUsedAsExpressionTestGenerated.java | 6 ++++++ .../isUsedAsExpression/delegatedSuperEntry.kt | 5 +++++ .../isUsedAsExpression/delegatedSuperEntry.txt | 3 +++ 7 files changed, 35 insertions(+) create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt create mode 100644 analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.txt diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java index 28660244dbf..92b70b851a1 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/components/expressionInfoProvider/Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -676,6 +676,12 @@ public class Fe10IdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated ex runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); } + @Test + @TestMetadata("delegatedSuperEntry.kt") + public void testDelegatedSuperEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt"); + } + @Test @TestMetadata("destructuringDecl.kt") public void testDestructuringDecl() throws Exception { diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt index 7abb07c3062..0bdf6ab69d5 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionInfoProvider.kt @@ -130,6 +130,9 @@ internal class KtFirExpressionInfoProvider( is KtValueArgument -> parent.getArgumentExpression() == child + is KtDelegatedSuperTypeEntry -> + parent.delegateExpression == child + // KtContainerNode are containers used in `KtIfExpressions`, and should be regarded // as parentheses for the purpose of this analysis. is KtContainerNode -> diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java index 496f23f6eec..a9733d989b4 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -676,6 +676,12 @@ public class FirIdeDependentAnalysisSourceModuleIsUsedAsExpressionTestGenerated runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); } + @Test + @TestMetadata("delegatedSuperEntry.kt") + public void testDelegatedSuperEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt"); + } + @Test @TestMetadata("destructuringDecl.kt") public void testDestructuringDecl() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java index 19a0528dcf9..5277b00ca74 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/expressionInfoProvider/FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -676,6 +676,12 @@ public class FirIdeNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated ext runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); } + @Test + @TestMetadata("delegatedSuperEntry.kt") + public void testDelegatedSuperEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt"); + } + @Test @TestMetadata("destructuringDecl.kt") public void testDestructuringDecl() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java index f5dc10d3189..0bc5d09ca6e 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/expressionInfoProvider/FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenerated.java @@ -676,6 +676,12 @@ public class FirStandaloneNormalAnalysisSourceModuleIsUsedAsExpressionTestGenera runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/default_parameter.kt"); } + @Test + @TestMetadata("delegatedSuperEntry.kt") + public void testDelegatedSuperEntry() throws Exception { + runTest("analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt"); + } + @Test @TestMetadata("destructuringDecl.kt") public void testDestructuringDecl() throws Exception { diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt new file mode 100644 index 00000000000..c21d86eaa6c --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.kt @@ -0,0 +1,5 @@ +interface I +class Delegating : I by compoundDelegate() +fun compoundDelegate(): I { + return object : I {} +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.txt b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.txt new file mode 100644 index 00000000000..26072ddd2c3 --- /dev/null +++ b/analysis/analysis-api/testData/components/expressionInfoProvider/isUsedAsExpression/delegatedSuperEntry.txt @@ -0,0 +1,3 @@ +expression: CALL_EXPRESSION +text: compoundDelegate() +isUsedAsExpression: true