Fir2Ir: more precise calculation of enum class modality

Use the same condition as in the already existing `createIrEnumEntry`
function (and as in psi2ir): enum class should be final unless there's
an enum entry with any declaration other than its constructor.

 #KT-57216
This commit is contained in:
Alexander Udalov
2023-03-15 00:11:36 +01:00
committed by Space Team
parent 2cc3b542fd
commit 68b94b07b8
17 changed files with 43 additions and 45 deletions
+3 -3
View File
@@ -18,7 +18,7 @@ enum class TestEnum1 : Enum<TestEnum1> {
}
open enum class TestEnum2 : Enum<TestEnum2> {
enum class TestEnum2 : Enum<TestEnum2> {
private constructor(x: Int) /* primary */ {
super/*Enum*/<TestEnum2>()
/* <init>() */
@@ -131,7 +131,7 @@ abstract enum class TestEnum4 : Enum<TestEnum4> {
}
open enum class TestEnum5 : Enum<TestEnum5> {
enum class TestEnum5 : Enum<TestEnum5> {
private constructor(x: Int = 0) /* primary */ {
super/*Enum*/<TestEnum5>()
/* <init>() */
@@ -161,7 +161,7 @@ fun f(): Int {
return 1
}
open enum class TestEnum6 : Enum<TestEnum6> {
enum class TestEnum6 : Enum<TestEnum6> {
private constructor(x: Int, y: Int) /* primary */ {
super/*Enum*/<TestEnum6>()
/* <init>() */