diff --git a/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.kt b/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.kt new file mode 100644 index 00000000000..4a3a0d09d47 --- /dev/null +++ b/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.kt @@ -0,0 +1,22 @@ +enum class TestEnum { + FIRST, + SECOND, + THIRD { + fun foo() {} + } +} + +fun use(some: Any?) {} + +fun useEnum(some: TestEnum) {} + +fun useVararg(vararg some: TestEnum) {} + +fun test() { + use(TestEnum.FIRST) + useEnum(TestEnum.SECOND) + useEnum(TestEnum.THIRD) + + useVararg(TestEnum.FIRST, TestEnum.SECOND) + useVararg(1, 2, 3, 4, 5) +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.txt b/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.txt new file mode 100644 index 00000000000..a3abe81a82c --- /dev/null +++ b/compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.txt @@ -0,0 +1,50 @@ +FILE: enumEntryUse.kt + public final enum class TestEnum : R|kotlin/Enum| { + private constructor(): R|TestEnum| { + super() + } + + public final static enum entry FIRST: R|TestEnum| = object : R|TestEnum| { + private constructor(): R|anonymous| { + super() + } + + } + + public final static enum entry SECOND: R|TestEnum| = object : R|TestEnum| { + private constructor(): R|anonymous| { + super() + } + + } + + public final static enum entry THIRD: R|TestEnum| = object : R|TestEnum| { + private constructor(): R|anonymous| { + super() + } + + public final fun foo(): R|kotlin/Unit| { + } + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|TestEnum| { + } + + } + public final fun use(some: R|kotlin/Any?|): R|kotlin/Unit| { + } + public final fun useEnum(some: R|TestEnum|): R|kotlin/Unit| { + } + public final fun useVararg(vararg some: R|kotlin/Array>>>>>|): R|kotlin/Unit| { + } + public final fun test(): R|kotlin/Unit| { + R|/use|(Q|TestEnum|.R|/TestEnum.FIRST|) + R|/useEnum|(Q|TestEnum|.R|/TestEnum.SECOND|) + R|/useEnum|(Q|TestEnum|.R|/TestEnum.THIRD|) + #(Q|TestEnum|.R|/TestEnum.FIRST|, Q|TestEnum|.R|/TestEnum.SECOND|) + #(Int(1), Int(2), Int(3), Int(4), Int(5)) + } diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java index e38c26a2a7a..d95e42f82ec 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java @@ -439,6 +439,11 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest { runTest("compiler/fir/resolve/testData/resolve/expresssions/dispatchReceiver.kt"); } + @TestMetadata("enumEntryUse.kt") + public void testEnumEntryUse() throws Exception { + runTest("compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.kt"); + } + @TestMetadata("enumValues.kt") public void testEnumValues() throws Exception { runTest("compiler/fir/resolve/testData/resolve/expresssions/enumValues.kt"); diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java index 8d59b8789b4..5793fe0016c 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java @@ -439,6 +439,11 @@ public class FirDiagnosticsWithLightTreeTestGenerated extends AbstractFirDiagnos runTest("compiler/fir/resolve/testData/resolve/expresssions/dispatchReceiver.kt"); } + @TestMetadata("enumEntryUse.kt") + public void testEnumEntryUse() throws Exception { + runTest("compiler/fir/resolve/testData/resolve/expresssions/enumEntryUse.kt"); + } + @TestMetadata("enumValues.kt") public void testEnumValues() throws Exception { runTest("compiler/fir/resolve/testData/resolve/expresssions/enumValues.kt");