From a475a3031e9c8ae44236ea8febc70409793613d7 Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Wed, 6 Dec 2023 13:09:07 +0100 Subject: [PATCH] KT-64080 [LL] Add on-air resolve tests for enum entry resolution --- .../dependentCopy/enumBody.context.txt | 37 ++++++++++++++++++ .../testData/dependentCopy/enumBody.fir.txt | 7 ++++ .../testData/dependentCopy/enumBody.kt | 7 ++++ .../dependentCopy/enumInitializer.context.txt | 39 +++++++++++++++++++ .../dependentCopy/enumInitializer.fir.txt | 6 +++ .../testData/dependentCopy/enumInitializer.kt | 11 ++++++ ...urceDependentCopyContextTestGenerated.java | 12 ++++++ .../SourceDependentCopyFirTestGenerated.java | 12 ++++++ 8 files changed, 131 insertions(+) create mode 100644 analysis/low-level-api-fir/testData/dependentCopy/enumBody.context.txt create mode 100644 analysis/low-level-api-fir/testData/dependentCopy/enumBody.fir.txt create mode 100644 analysis/low-level-api-fir/testData/dependentCopy/enumBody.kt create mode 100644 analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.context.txt create mode 100644 analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.fir.txt create mode 100644 analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.kt diff --git a/analysis/low-level-api-fir/testData/dependentCopy/enumBody.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/enumBody.context.txt new file mode 100644 index 00000000000..13b81546f0e --- /dev/null +++ b/analysis/low-level-api-fir/testData/dependentCopy/enumBody.context.txt @@ -0,0 +1,37 @@ +Tower Data Context: + Element 0 + Scope: FirDefaultStarImportingScope + Element 1 + Scope: FirExplicitStarImportingScope + Element 2 + Scope: FirDefaultSimpleImportingScope + Element 3 + Scope: FirDefaultSimpleImportingScope + Element 4 + Scope: FirPackageMemberScope + Element 5 + Scope: FirExplicitSimpleImportingScope + Element 6 + Implicit receiver: + FirRegularClassSymbol public final companion object Companion : R|kotlin/Any| + Type: kotlin.Enum.Companion + Element 7 + Scope: FirNestedClassifierScopeWithSubstitution + Classifiers: + FirRegularClassSymbol public final companion object Companion : R|kotlin/Any| + Static scope owner symbol: FirRegularClassSymbol public abstract class Enum|> : R|kotlin/Comparable|, R|java/io/Serializable| + Element 8 + Scope: FirNameAwareOnlyCallablesScope + Functions + FirNamedFunctionSymbol public final static fun valueOf(value: R|kotlin/String|): R|test/MyEnum| + FirNamedFunctionSymbol public final static fun values(): R|kotlin/Array| + Properties: + FirEnumEntrySymbol public final static enum entry VARIANT: R|test/MyEnum| = LAZY_EXPRESSION + FirPropertySymbol public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + Element 9 + Implicit receiver: + FirAnonymousObjectSymbol object : R|test/MyEnum| + Type: test. + Element 10 + Scope: FirLocalScope diff --git a/analysis/low-level-api-fir/testData/dependentCopy/enumBody.fir.txt b/analysis/low-level-api-fir/testData/dependentCopy/enumBody.fir.txt new file mode 100644 index 00000000000..d29b09bb29e --- /dev/null +++ b/analysis/low-level-api-fir/testData/dependentCopy/enumBody.fir.txt @@ -0,0 +1,7 @@ +KT element: KtNamedFunction +FIR element: FirSimpleFunctionImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +public final [ResolvedTo(BODY_RESOLVE)] fun test(): R|kotlin/Unit| { +} diff --git a/analysis/low-level-api-fir/testData/dependentCopy/enumBody.kt b/analysis/low-level-api-fir/testData/dependentCopy/enumBody.kt new file mode 100644 index 00000000000..57f8d386a4a --- /dev/null +++ b/analysis/low-level-api-fir/testData/dependentCopy/enumBody.kt @@ -0,0 +1,7 @@ +package test + +enum class MyEnum() { + VARIANT() { + fun test() {} + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.context.txt b/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.context.txt new file mode 100644 index 00000000000..ca5daf78220 --- /dev/null +++ b/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.context.txt @@ -0,0 +1,39 @@ +Tower Data Context: + Element 0 + Scope: FirDefaultStarImportingScope + Element 1 + Scope: FirExplicitStarImportingScope + Element 2 + Scope: FirDefaultSimpleImportingScope + Element 3 + Scope: FirDefaultSimpleImportingScope + Element 4 + Scope: FirPackageMemberScope + Element 5 + Scope: FirExplicitSimpleImportingScope + Element 6 + Implicit receiver: + FirRegularClassSymbol public final companion object Companion : R|kotlin/Any| + Type: kotlin.Enum.Companion + Element 7 + Scope: FirNestedClassifierScopeWithSubstitution + Classifiers: + FirRegularClassSymbol public final companion object Companion : R|kotlin/Any| + Static scope owner symbol: FirRegularClassSymbol public abstract class Enum|> : R|kotlin/Comparable|, R|java/io/Serializable| + Element 8 + Scope: FirNameAwareOnlyCallablesScope + Functions + FirNamedFunctionSymbol public final static fun valueOf(value: R|kotlin/String|): R|test/MyEnum| + FirNamedFunctionSymbol public final static fun values(): R|kotlin/Array| + Properties: + FirEnumEntrySymbol public final static enum entry VARIANT: R|test/MyEnum| = LAZY_EXPRESSION + FirPropertySymbol public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + Element 9 + Implicit receiver: + FirAnonymousObjectSymbol object : R|test/MyEnum| + Type: test. + Element 10 + Scope: FirLocalScope + Element 11 + Scope: FirLocalScope diff --git a/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.fir.txt b/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.fir.txt new file mode 100644 index 00000000000..da53ed4d425 --- /dev/null +++ b/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.fir.txt @@ -0,0 +1,6 @@ +KT element: KtNameReferenceExpression +FIR element: FirPropertyAccessExpressionImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +R|test/property| diff --git a/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.kt b/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.kt new file mode 100644 index 00000000000..4fa1457a9cb --- /dev/null +++ b/analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.kt @@ -0,0 +1,11 @@ +package test + +val property: Int = 10 + +enum class MyEnum(val i: Int) { + VARIANT(property) { + fun test() { + property + } + } +} \ No newline at end of file diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyContextTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyContextTestGenerated.java index b5157639219..b2e897e1507 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyContextTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyContextTestGenerated.java @@ -36,6 +36,18 @@ public class SourceDependentCopyContextTestGenerated extends AbstractSourceDepen runTest("analysis/low-level-api-fir/testData/dependentCopy/classBody.kt"); } + @Test + @TestMetadata("enumBody.kt") + public void testEnumBody() throws Exception { + runTest("analysis/low-level-api-fir/testData/dependentCopy/enumBody.kt"); + } + + @Test + @TestMetadata("enumInitializer.kt") + public void testEnumInitializer() throws Exception { + runTest("analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.kt"); + } + @Test @TestMetadata("function.kt") public void testFunction() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyFirTestGenerated.java index f83ebacd84c..233d08370a8 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceDependentCopyFirTestGenerated.java @@ -36,6 +36,18 @@ public class SourceDependentCopyFirTestGenerated extends AbstractSourceDependent runTest("analysis/low-level-api-fir/testData/dependentCopy/classBody.kt"); } + @Test + @TestMetadata("enumBody.kt") + public void testEnumBody() throws Exception { + runTest("analysis/low-level-api-fir/testData/dependentCopy/enumBody.kt"); + } + + @Test + @TestMetadata("enumInitializer.kt") + public void testEnumInitializer() throws Exception { + runTest("analysis/low-level-api-fir/testData/dependentCopy/enumInitializer.kt"); + } + @Test @TestMetadata("function.kt") public void testFunction() throws Exception {