JVM_IR: Fix enum classes ABI
1. Enum entry fields don't have nullability annotations. 2. Enum class special methods (values, valueOf) are not 'final' (although they probably should be, javac generates corresponding methods without ACC_FINAL flag). 3. Enum class special methods don't have nullability annotations. 4. Don't generate synthetic accessor for enum entry class constructor. KT-37019 KT-37020 KT-37021
This commit is contained in:
@@ -13,7 +13,6 @@ fun main() {
|
||||
value<Z>()
|
||||
}
|
||||
|
||||
// JVM_TEMPLATES
|
||||
//2 reifiedOperationMarker
|
||||
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ICONST_0\s*ANEWARRAY java/lang/Enum
|
||||
//1 INVOKESTATIC Z\.values \(\)\[LZ;
|
||||
@@ -22,14 +21,3 @@ fun main() {
|
||||
//1 INVOKESTATIC Z\.valueOf \(Ljava/lang/String;\)LZ;
|
||||
//1 public static valueOf
|
||||
//2 INVOKESTATIC java/lang/Enum.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
||||
|
||||
// JVM_IR_TEMPLATES
|
||||
//2 reifiedOperationMarker
|
||||
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ICONST_0\s*ANEWARRAY java/lang/Enum
|
||||
//1 INVOKESTATIC Z\.values \(\)\[LZ;
|
||||
//4 valueOf
|
||||
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ACONST_NULL\s*ALOAD 2\s*INVOKESTATIC java/lang/Enum\.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
||||
//1 INVOKESTATIC Z\.valueOf \(Ljava/lang/String;\)LZ;
|
||||
//1 public final static valueOf
|
||||
// ^ valueOf is generated as 'public final static' in JVM_IR
|
||||
//2 INVOKESTATIC java/lang/Enum.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
||||
Reference in New Issue
Block a user