KT-56457 Annotate Enum.entries with @NotNull
This commit is contained in:
committed by
Space Team
parent
88b07f5287
commit
4c7f8ba196
+9
-3
@@ -74,7 +74,7 @@ class FunctionCodegen(private val irFunction: IrFunction, private val classCodeg
|
||||
generateParameterNames(irFunction, methodVisitor, context.state)
|
||||
}
|
||||
|
||||
if (irFunction.origin !in methodOriginsWithoutAnnotations) {
|
||||
if (irFunction.isWithAnnotations) {
|
||||
val skipNullabilityAnnotations = flags and Opcodes.ACC_PRIVATE != 0 || flags and Opcodes.ACC_SYNTHETIC != 0
|
||||
object : AnnotationCodegen(classCodegen, skipNullabilityAnnotations) {
|
||||
override fun visitAnnotation(descr: String, visible: Boolean): AnnotationVisitor {
|
||||
@@ -306,13 +306,12 @@ class FunctionCodegen(private val irFunction: IrFunction, private val classCodeg
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal val methodOriginsWithoutAnnotations =
|
||||
private val methodOriginsWithoutAnnotations =
|
||||
setOf(
|
||||
// Not generating parameter annotations for default stubs fixes KT-7892, though
|
||||
// this certainly looks like a workaround for a javac bug.
|
||||
IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER,
|
||||
JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR,
|
||||
IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER,
|
||||
IrDeclarationOrigin.GENERATED_SINGLE_FIELD_VALUE_CLASS_MEMBER,
|
||||
IrDeclarationOrigin.BRIDGE,
|
||||
IrDeclarationOrigin.BRIDGE_SPECIAL,
|
||||
@@ -321,6 +320,13 @@ class FunctionCodegen(private val irFunction: IrFunction, private val classCodeg
|
||||
IrDeclarationOrigin.IR_BUILTINS_STUB,
|
||||
IrDeclarationOrigin.PROPERTY_DELEGATE,
|
||||
)
|
||||
|
||||
private val IrFunction.isWithAnnotations: Boolean
|
||||
get() = when (origin) {
|
||||
in methodOriginsWithoutAnnotations -> false
|
||||
IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> name.asString() == "<get-entries>"
|
||||
else -> true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ public final enum class E {
|
||||
private synthetic final static method $values(): E[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): E
|
||||
public static method values(): E[]
|
||||
}
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ public final enum class E {
|
||||
private synthetic final static method $values(): E[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): E
|
||||
public static method values(): E[]
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ public final enum class E {
|
||||
private synthetic final static method $values(): E[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): E
|
||||
public static method values(): E[]
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -29,7 +29,7 @@ public final enum class E {
|
||||
private synthetic final static method $values(): E[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): E
|
||||
public static method values(): E[]
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -17,7 +17,7 @@ public final enum class E {
|
||||
private synthetic final static method $values(): E[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): E
|
||||
public static method values(): E[]
|
||||
public final inner class E$Companion
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ public final enum class Test {
|
||||
private synthetic final static method $values(): Test[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): Test
|
||||
public static method values(): Test[]
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public final enum class SimpleEnum {
|
||||
private synthetic final static method $values(): SimpleEnum[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): SimpleEnum
|
||||
public static method values(): SimpleEnum[]
|
||||
}
|
||||
@@ -32,7 +32,7 @@ public final enum class WithAnnotations {
|
||||
private synthetic final static method $values(): WithAnnotations[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): WithAnnotations
|
||||
public static method values(): WithAnnotations[]
|
||||
}
|
||||
@@ -50,7 +50,7 @@ public final enum class WithConstructor {
|
||||
private synthetic final static method $values(): WithConstructor[]
|
||||
static method <clinit>(): void
|
||||
private method <init>(p0: java.lang.String, p1: int, p2: java.lang.String): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public final @org.jetbrains.annotations.NotNull method getX(): java.lang.String
|
||||
public static method valueOf(p0: java.lang.String): WithConstructor
|
||||
public static method values(): WithConstructor[]
|
||||
@@ -77,7 +77,7 @@ public abstract enum class WithEntryClass {
|
||||
private method <init>(p0: java.lang.String, p1: int): void
|
||||
public synthetic method <init>(p0: java.lang.String, p1: int, p2: kotlin.jvm.internal.DefaultConstructorMarker): void
|
||||
public abstract method foo(): void
|
||||
public static method getEntries(): kotlin.enums.EnumEntries
|
||||
public static @org.jetbrains.annotations.NotNull method getEntries(): kotlin.enums.EnumEntries
|
||||
public static method valueOf(p0: java.lang.String): WithEntryClass
|
||||
public static method values(): WithEntryClass[]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user