From e048d49bf0e01a38a4f0837983fddeb83656ad22 Mon Sep 17 00:00:00 2001 From: Alexander Kuznetsov Date: Fri, 1 Dec 2023 17:33:30 +0000 Subject: [PATCH] [Analysis API] fe10: count value classes in `isInline` #KT-63771 fixed Merge-request: KT-MR-13220 Merged-by: Alexander Kuznetsov --- .../KtFe10DescNamedClassOrObjectSymbol.kt | 2 +- .../KtFe10PsiNamedClassOrObjectSymbol.kt | 2 +- ...ourceModuleSingleSymbolByPsiGenerated.java | 6 ++++ ...eModuleSingleSymbolByPsiTestGenerated.java | 6 ++++ ...ourceModuleSingleSymbolByPsiGenerated.java | 6 ++++ ...eModuleSingleSymbolByPsiTestGenerated.java | 6 ++++ ...ourceModuleSingleSymbolByPsiGenerated.java | 6 ++++ ...eModuleSingleSymbolByPsiTestGenerated.java | 6 ++++ .../symbols/singleSymbolByPsi/valueClass.kt | 5 +++ .../singleSymbolByPsi/valueClass.pretty.txt | 2 ++ .../symbols/singleSymbolByPsi/valueClass.txt | 31 +++++++++++++++++++ 11 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt create mode 100644 analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.pretty.txt create mode 100644 analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.txt diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/KtFe10DescNamedClassOrObjectSymbol.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/KtFe10DescNamedClassOrObjectSymbol.kt index 67928f5dd87..8d94b16ab89 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/KtFe10DescNamedClassOrObjectSymbol.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/KtFe10DescNamedClassOrObjectSymbol.kt @@ -42,7 +42,7 @@ internal class KtFe10DescNamedClassOrObjectSymbol( get() = withValidityAssertion { descriptor.isData } override val isInline: Boolean - get() = withValidityAssertion { descriptor.isInline } + get() = withValidityAssertion { descriptor.isInline || descriptor.isValue } override val isFun: Boolean get() = withValidityAssertion { descriptor.isFun } diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiNamedClassOrObjectSymbol.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiNamedClassOrObjectSymbol.kt index 98ed690986c..b235da0e99f 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiNamedClassOrObjectSymbol.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/psiBased/KtFe10PsiNamedClassOrObjectSymbol.kt @@ -56,7 +56,7 @@ internal class KtFe10PsiNamedClassOrObjectSymbol( get() = withValidityAssertion { psi.hasModifier(KtTokens.DATA_KEYWORD) } override val isInline: Boolean - get() = withValidityAssertion { psi.hasModifier(KtTokens.INLINE_KEYWORD) } + get() = withValidityAssertion { psi.hasModifier(KtTokens.INLINE_KEYWORD) || psi.hasModifier(KtTokens.VALUE_KEYWORD) } override val isFun: Boolean get() = withValidityAssertion { psi.hasModifier(KtTokens.FUN_KEYWORD) } diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java index 08d2af7058b..2cbc1e36394 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java @@ -202,6 +202,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated extends runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsWithTypeAlias.kt"); } + @Test + @TestMetadata("valueClass.kt") + public void testValueClass() throws Exception { + runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt"); + } + @Nested @TestMetadata("analysis/analysis-api/testData/symbols/singleSymbolByPsi/contracts") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java index 88f40b63abf..ec42e099ef2 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java @@ -202,6 +202,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated ext runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsWithTypeAlias.kt"); } + @Test + @TestMetadata("valueClass.kt") + public void testValueClass() throws Exception { + runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt"); + } + @Nested @TestMetadata("analysis/analysis-api/testData/symbols/singleSymbolByPsi/contracts") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java index 91ec638042c..03a67ce4723 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java @@ -202,6 +202,12 @@ public class FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated extends runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsWithTypeAlias.kt"); } + @Test + @TestMetadata("valueClass.kt") + public void testValueClass() throws Exception { + runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt"); + } + @Nested @TestMetadata("analysis/analysis-api/testData/symbols/singleSymbolByPsi/contracts") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java index 3e78ef289c6..27ae82cc07e 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java @@ -202,6 +202,12 @@ public class FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated exte runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsWithTypeAlias.kt"); } + @Test + @TestMetadata("valueClass.kt") + public void testValueClass() throws Exception { + runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt"); + } + @Nested @TestMetadata("analysis/analysis-api/testData/symbols/singleSymbolByPsi/contracts") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java index 9ee1f3b5b6e..a7f63d5f4df 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiGenerated.java @@ -202,6 +202,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiGenerated e runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsWithTypeAlias.kt"); } + @Test + @TestMetadata("valueClass.kt") + public void testValueClass() throws Exception { + runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt"); + } + @Nested @TestMetadata("analysis/analysis-api/testData/symbols/singleSymbolByPsi/contracts") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java index 10a09f0f7aa..836a0b58561 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerated.java @@ -202,6 +202,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiTestGenerat runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsWithTypeAlias.kt"); } + @Test + @TestMetadata("valueClass.kt") + public void testValueClass() throws Exception { + runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt"); + } + @Nested @TestMetadata("analysis/analysis-api/testData/symbols/singleSymbolByPsi/contracts") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt b/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt new file mode 100644 index 00000000000..743bc9c00aa --- /dev/null +++ b/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.kt @@ -0,0 +1,5 @@ +// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1 +// WITH_STDLIB + +@JvmInline +value class ValueClass(val value: String) diff --git a/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.pretty.txt b/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.pretty.txt new file mode 100644 index 00000000000..65e54ebf71e --- /dev/null +++ b/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.pretty.txt @@ -0,0 +1,2 @@ +@kotlin.jvm.JvmInline +inline class ValueClass(value: kotlin.String) diff --git a/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.txt b/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.txt new file mode 100644 index 00000000000..776db999664 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/singleSymbolByPsi/valueClass.txt @@ -0,0 +1,31 @@ +KtNamedClassOrObjectSymbol: + annotationsList: [ + kotlin/jvm/JvmInline() + psi: KtAnnotationEntry + ] + classIdIfNonLocal: ValueClass + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: true + isInner: false + modality: FINAL + name: ValueClass + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + annotationApplicableTargets: null + deprecationStatus: null