KT-29340 Provide effective modality for enum class in IR

* if enum class has abstract members, then it is ABSTRACT
* otherwise, if enum class has entries with members, then it is OPEN
* otherwise, it is FINAL.
This commit is contained in:
Dmitry Petrov
2019-01-21 12:53:13 +03:00
parent efdb4e1d5d
commit 360bfcaf6a
16 changed files with 776 additions and 39 deletions
@@ -146,7 +146,7 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:Test1 flags:
VALUE_PARAMETER name:value index:0 type:kotlin.String flags:
SYNTHETIC_BODY kind=ENUM_VALUEOF
CLASS ENUM_CLASS name:Test2 modality:FINAL visibility:public flags: superTypes:[kotlin.Enum<Test2>]
CLASS ENUM_CLASS name:Test2 modality:ABSTRACT visibility:public flags: superTypes:[kotlin.Enum<Test2>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test2 flags:
CONSTRUCTOR visibility:private <> (x:kotlin.Int) returnType:Test2 flags:primary
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags: