From 536e172d0e58832a6bcf7dd3be63c10b38762e9d Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Fri, 25 Aug 2023 17:08:21 +0200 Subject: [PATCH] [AA] Add declared member scope tests for enum entry initializers ^KT-61425 --- ...oduleDeclaredMemberScopeTestGenerated.java | 24 ++++ ...oduleDeclaredMemberScopeTestGenerated.java | 24 ++++ .../enumEntryInitializer.kt | 10 ++ .../enumEntryInitializer.pretty.txt | 3 + .../enumEntryInitializer.txt | 107 ++++++++++++++++++ .../enumEntryInitializerWithEmptyBody.kt | 8 ++ ...umEntryInitializerWithEmptyBody.pretty.txt | 1 + .../enumEntryInitializerWithEmptyBody.txt | 22 ++++ ...enumEntryInitializerWithFinalEnumMember.kt | 12 ++ ...yInitializerWithFinalEnumMember.pretty.txt | 3 + ...numEntryInitializerWithFinalEnumMember.txt | 107 ++++++++++++++++++ ...numEntryInitializerWithOverriddenMember.kt | 12 ++ ...InitializerWithOverriddenMember.pretty.txt | 3 + ...umEntryInitializerWithOverriddenMember.txt | 107 ++++++++++++++++++ 14 files changed, 443 insertions(+) create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.txt diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java index 7e17165c023..eab39180b27 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java @@ -46,6 +46,30 @@ public class FirIdeNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated ex KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("enumEntryInitializer.kt") + public void testEnumEntryInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.kt"); + } + + @Test + @TestMetadata("enumEntryInitializerWithEmptyBody.kt") + public void testEnumEntryInitializerWithEmptyBody() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.kt"); + } + + @Test + @TestMetadata("enumEntryInitializerWithFinalEnumMember.kt") + public void testEnumEntryInitializerWithFinalEnumMember() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.kt"); + } + + @Test + @TestMetadata("enumEntryInitializerWithOverriddenMember.kt") + public void testEnumEntryInitializerWithOverriddenMember() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.kt"); + } + @Test @TestMetadata("javaDeclaredEnhancementScope.kt") public void testJavaDeclaredEnhancementScope() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java index e661ba5d83e..adbdd5bbe95 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated.java @@ -46,6 +46,30 @@ public class FirStandaloneNormalAnalysisSourceModuleDeclaredMemberScopeTestGener KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("enumEntryInitializer.kt") + public void testEnumEntryInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.kt"); + } + + @Test + @TestMetadata("enumEntryInitializerWithEmptyBody.kt") + public void testEnumEntryInitializerWithEmptyBody() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.kt"); + } + + @Test + @TestMetadata("enumEntryInitializerWithFinalEnumMember.kt") + public void testEnumEntryInitializerWithFinalEnumMember() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.kt"); + } + + @Test + @TestMetadata("enumEntryInitializerWithOverriddenMember.kt") + public void testEnumEntryInitializerWithOverriddenMember() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.kt"); + } + @Test @TestMetadata("javaDeclaredEnhancementScope.kt") public void testJavaDeclaredEnhancementScope() throws Exception { diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.kt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.kt new file mode 100644 index 00000000000..e9c9e39de8e --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.kt @@ -0,0 +1,10 @@ +// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1 +package test + +enum class E { + A { + val x: String = "" + } +} + +// enum_entry_initializer: test/E.A diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.pretty.txt new file mode 100644 index 00000000000..a33af77ee4b --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.pretty.txt @@ -0,0 +1,3 @@ +val x: kotlin.String + +private constructor() diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.txt new file mode 100644 index 00000000000..47b8d4851c4 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializer.txt @@ -0,0 +1,107 @@ +KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(/x) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: LOCAL + typeParameters: [] + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + callableIdIfNonLocal: null + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtConstantInitializerValue("") + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: x + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getX + javaSetterName: null + setterDeprecationStatus: null + +KtConstructorSymbol: + annotationsList: [] + callableIdIfNonLocal: null + containingClassIdIfNonLocal: null + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE_MEMBER_GENERATED + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Private + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.kt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.kt new file mode 100644 index 00000000000..537dfca7b58 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.kt @@ -0,0 +1,8 @@ +// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1 +package test + +enum class E { + A {} +} + +// enum_entry_initializer: test/E.A diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.pretty.txt new file mode 100644 index 00000000000..54fe4283354 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.pretty.txt @@ -0,0 +1 @@ +private constructor() diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.txt new file mode 100644 index 00000000000..bbecb88a9dd --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithEmptyBody.txt @@ -0,0 +1,22 @@ +KtConstructorSymbol: + annotationsList: [] + callableIdIfNonLocal: null + containingClassIdIfNonLocal: null + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE_MEMBER_GENERATED + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Private + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.kt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.kt new file mode 100644 index 00000000000..45ab1aeb37f --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.kt @@ -0,0 +1,12 @@ +// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1 +package test + +enum class E { + A { + val x: String = "" + }; + + val foo: Int = 5 +} + +// enum_entry_initializer: test/E.A diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.pretty.txt new file mode 100644 index 00000000000..a33af77ee4b --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.pretty.txt @@ -0,0 +1,3 @@ +val x: kotlin.String + +private constructor() diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.txt new file mode 100644 index 00000000000..47b8d4851c4 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithFinalEnumMember.txt @@ -0,0 +1,107 @@ +KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(/x) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: LOCAL + typeParameters: [] + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + callableIdIfNonLocal: null + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtConstantInitializerValue("") + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: x + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getX + javaSetterName: null + setterDeprecationStatus: null + +KtConstructorSymbol: + annotationsList: [] + callableIdIfNonLocal: null + containingClassIdIfNonLocal: null + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE_MEMBER_GENERATED + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Private + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.kt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.kt new file mode 100644 index 00000000000..c42f477e227 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.kt @@ -0,0 +1,12 @@ +// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1 +package test + +enum class E { + A { + override val foo: Int = 65 + }; + + abstract val foo: Int? +} + +// enum_entry_initializer: test/E.A diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.pretty.txt new file mode 100644 index 00000000000..f0e6f4477eb --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.pretty.txt @@ -0,0 +1,3 @@ +override val foo: kotlin.Int + +private constructor() diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.txt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.txt new file mode 100644 index 00000000000..c08c5e53b0f --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/enumEntryInitializerWithOverriddenMember.txt @@ -0,0 +1,107 @@ +KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(/foo) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + callableIdIfNonLocal: null + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: true + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtConstantInitializerValue(65) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: true + isStatic: false + isVal: true + modality: OPEN + name: foo + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + getDispatchReceiver(): KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getFoo + javaSetterName: null + setterDeprecationStatus: null + +KtConstructorSymbol: + annotationsList: [] + callableIdIfNonLocal: null + containingClassIdIfNonLocal: null + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE_MEMBER_GENERATED + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Private + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null