diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.kt b/analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.kt new file mode 100644 index 00000000000..545c32cd03a --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.kt @@ -0,0 +1,25 @@ +// KT-63330 +// SKIP_WHEN_OUT_OF_CONTENT_ROOT + +// MODULE: library1 +// MODULE_KIND: LibraryBinary +// FILE: EnumClass.kt +enum class EnumClass { + First, Second +} + +@Target(AnnotationTarget.TYPE) +annotation class Anno(val enumEntry: EnumClass) + +// MODULE: library2(library1) +// MODULE_KIND: LibraryBinary +// FILE: Usage.kt +class Usage + +val usage: @Anno(EnumClass.First) Usage = Usage() + +// MODULE: main(library1, library2) +// FILE: main.kt +fun foo() { + val x = usage +} diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.txt new file mode 100644 index 00000000000..eab1b5c6aad --- /dev/null +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.txt @@ -0,0 +1,12 @@ +KT element: KtProperty +FIR element: FirPropertyImpl +FIR source kind: KtRealSourceElementKind + +FIR element rendered: +[ResolvedTo(BODY_RESOLVE)] lval x: R|@R|Anno|(enumEntry = ) Usage| = R|/usage| + +FIR FILE: +FILE: [ResolvedTo(IMPORTS)] main.kt + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(BODY_RESOLVE)] lval x: R|@R|Anno|(enumEntry = ) Usage| = R|/usage| + } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java index 0de447694db..9125f831dfd 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java @@ -610,6 +610,22 @@ public class OutOfContentRootGetOrBuildFirTestGenerated extends AbstractOutOfCon } } + @Nested + @TestMetadata("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized") + @TestDataPath("$PROJECT_ROOT") + public class Deserialized { + @Test + public void testAllFilesPresentInDeserialized() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized"), Pattern.compile("^(.+)\\.(kt)$"), null, true); + } + + @Test + @TestMetadata("annotationWithEnumEntryArgument.kt") + public void testAnnotationWithEnumEntryArgument() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.kt"); + } + } + @Nested @TestMetadata("analysis/low-level-api-fir/testData/getOrBuildFir/destructuring") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptGetOrBuildFirTestGenerated.java index bebcc27349d..a11e6389c23 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptGetOrBuildFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/ScriptGetOrBuildFirTestGenerated.java @@ -412,6 +412,16 @@ public class ScriptGetOrBuildFirTestGenerated extends AbstractScriptGetOrBuildFi } } + @Nested + @TestMetadata("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized") + @TestDataPath("$PROJECT_ROOT") + public class Deserialized { + @Test + public void testAllFilesPresentInDeserialized() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized"), Pattern.compile("^(.+)\\.(kts)$"), null, true); + } + } + @Nested @TestMetadata("analysis/low-level-api-fir/testData/getOrBuildFir/destructuring") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java index 60d631fdfbf..3c8ef1dc5e5 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java @@ -610,6 +610,22 @@ public class SourceGetOrBuildFirTestGenerated extends AbstractSourceGetOrBuildFi } } + @Nested + @TestMetadata("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized") + @TestDataPath("$PROJECT_ROOT") + public class Deserialized { + @Test + public void testAllFilesPresentInDeserialized() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized"), Pattern.compile("^(.+)\\.(kt)$"), null, true); + } + + @Test + @TestMetadata("annotationWithEnumEntryArgument.kt") + public void testAnnotationWithEnumEntryArgument() throws Exception { + runTest("analysis/low-level-api-fir/testData/getOrBuildFir/deserialized/annotationWithEnumEntryArgument.kt"); + } + } + @Nested @TestMetadata("analysis/low-level-api-fir/testData/getOrBuildFir/destructuring") @TestDataPath("$PROJECT_ROOT")