JVM_IR: Do not generate nullability annotation for synthetic result field
of continuation class. #KT-37084 Fixed
This commit is contained in:
+10
-8
@@ -360,15 +360,17 @@ open class ClassCodegen protected constructor(
|
|||||||
|
|
||||||
jvmSignatureClashDetector.trackField(field, RawSignature(fieldName, fieldType.descriptor, MemberKind.FIELD))
|
jvmSignatureClashDetector.trackField(field, RawSignature(fieldName, fieldType.descriptor, MemberKind.FIELD))
|
||||||
|
|
||||||
object : AnnotationCodegen(this@ClassCodegen, context) {
|
if (field.origin != JvmLoweredDeclarationOrigin.CONTINUATION_CLASS_RESULT_FIELD) {
|
||||||
override fun visitAnnotation(descr: String?, visible: Boolean): AnnotationVisitor {
|
object : AnnotationCodegen(this@ClassCodegen, context) {
|
||||||
return fv.visitAnnotation(descr, visible)
|
override fun visitAnnotation(descr: String?, visible: Boolean): AnnotationVisitor {
|
||||||
}
|
return fv.visitAnnotation(descr, visible)
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitTypeAnnotation(descr: String?, path: TypePath?, visible: Boolean): AnnotationVisitor {
|
override fun visitTypeAnnotation(descr: String?, path: TypePath?, visible: Boolean): AnnotationVisitor {
|
||||||
return fv.visitTypeAnnotation(TypeReference.newTypeReference(TypeReference.FIELD).value,path, descr, visible)
|
return fv.visitTypeAnnotation(TypeReference.newTypeReference(TypeReference.FIELD).value,path, descr, visible)
|
||||||
}
|
}
|
||||||
}.genAnnotations(field, fieldType, field.type)
|
}.genAnnotations(field, fieldType, field.type)
|
||||||
|
}
|
||||||
|
|
||||||
val descriptor = field.metadata?.descriptor
|
val descriptor = field.metadata?.descriptor
|
||||||
if (descriptor != null) {
|
if (descriptor != null) {
|
||||||
|
|||||||
+13
-13
@@ -8,7 +8,7 @@ final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1 {
|
|||||||
field L$4: java.lang.Object
|
field L$4: java.lang.Object
|
||||||
field L$5: java.lang.Object
|
field L$5: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
|
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
|
||||||
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
|
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1
|
||||||
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1
|
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$1
|
||||||
@@ -23,7 +23,7 @@ final class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1 {
|
|||||||
field L$1: java.lang.Object
|
field L$1: java.lang.Object
|
||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
|
synthetic final field this$0: CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
|
||||||
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
|
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2
|
||||||
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1
|
inner class CrossinlineKt$box$1$invokeSuspend$$inlined$filter$1$2$1
|
||||||
@@ -79,7 +79,7 @@ final class CrossinlineKt$box$1 {
|
|||||||
@kotlin.Metadata
|
@kotlin.Metadata
|
||||||
final class CrossinlineKt$consumeEach$2$send$1 {
|
final class CrossinlineKt$consumeEach$2$send$1 {
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final @org.jetbrains.annotations.NotNull field this$0: CrossinlineKt$consumeEach$2
|
synthetic final @org.jetbrains.annotations.NotNull field this$0: CrossinlineKt$consumeEach$2
|
||||||
inner class CrossinlineKt$consumeEach$2
|
inner class CrossinlineKt$consumeEach$2
|
||||||
inner class CrossinlineKt$consumeEach$2$send$1
|
inner class CrossinlineKt$consumeEach$2$send$1
|
||||||
@@ -108,7 +108,7 @@ final class CrossinlineKt$filter$$inlined$source$1$1 {
|
|||||||
field L$4: java.lang.Object
|
field L$4: java.lang.Object
|
||||||
field L$5: java.lang.Object
|
field L$5: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$1
|
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$1
|
||||||
inner class CrossinlineKt$filter$$inlined$source$1
|
inner class CrossinlineKt$filter$$inlined$source$1
|
||||||
inner class CrossinlineKt$filter$$inlined$source$1$1
|
inner class CrossinlineKt$filter$$inlined$source$1$1
|
||||||
@@ -137,7 +137,7 @@ final class CrossinlineKt$filter$$inlined$source$2$1 {
|
|||||||
field L$4: java.lang.Object
|
field L$4: java.lang.Object
|
||||||
field L$5: java.lang.Object
|
field L$5: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$2
|
synthetic final field this$0: CrossinlineKt$filter$$inlined$source$2
|
||||||
inner class CrossinlineKt$filter$$inlined$source$2
|
inner class CrossinlineKt$filter$$inlined$source$2
|
||||||
inner class CrossinlineKt$filter$$inlined$source$2$1
|
inner class CrossinlineKt$filter$$inlined$source$2$1
|
||||||
@@ -163,7 +163,7 @@ final class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$1$1 {
|
|||||||
field L$1: java.lang.Object
|
field L$1: java.lang.Object
|
||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$filter$lambda-3$$inlined$consumeEach$1
|
synthetic final field this$0: CrossinlineKt$filter$lambda-3$$inlined$consumeEach$1
|
||||||
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$1
|
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$1
|
||||||
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$1$1
|
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$1$1
|
||||||
@@ -190,7 +190,7 @@ final class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$2$1 {
|
|||||||
field L$1: java.lang.Object
|
field L$1: java.lang.Object
|
||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$filter$lambda-3$$inlined$consumeEach$2
|
synthetic final field this$0: CrossinlineKt$filter$lambda-3$$inlined$consumeEach$2
|
||||||
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$2
|
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$2
|
||||||
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$2$1
|
inner class CrossinlineKt$filter$lambda-3$$inlined$consumeEach$2$1
|
||||||
@@ -218,7 +218,7 @@ final class CrossinlineKt$fold$$forInline$$inlined$consumeEach$1$1 {
|
|||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field L$3: java.lang.Object
|
field L$3: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$fold$$forInline$$inlined$consumeEach$1
|
synthetic final field this$0: CrossinlineKt$fold$$forInline$$inlined$consumeEach$1
|
||||||
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$1
|
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$1
|
||||||
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$1$1
|
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$1$1
|
||||||
@@ -246,7 +246,7 @@ final class CrossinlineKt$fold$$forInline$$inlined$consumeEach$2$1 {
|
|||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field L$3: java.lang.Object
|
field L$3: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$fold$$forInline$$inlined$consumeEach$2
|
synthetic final field this$0: CrossinlineKt$fold$$forInline$$inlined$consumeEach$2
|
||||||
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$2
|
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$2
|
||||||
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$2$1
|
inner class CrossinlineKt$fold$$forInline$$inlined$consumeEach$2$1
|
||||||
@@ -274,7 +274,7 @@ final class CrossinlineKt$fold$$inlined$consumeEach$1$1 {
|
|||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field L$3: java.lang.Object
|
field L$3: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$fold$$inlined$consumeEach$1
|
synthetic final field this$0: CrossinlineKt$fold$$inlined$consumeEach$1
|
||||||
inner class CrossinlineKt$fold$$inlined$consumeEach$1
|
inner class CrossinlineKt$fold$$inlined$consumeEach$1
|
||||||
inner class CrossinlineKt$fold$$inlined$consumeEach$1$1
|
inner class CrossinlineKt$fold$$inlined$consumeEach$1$1
|
||||||
@@ -303,7 +303,7 @@ final class CrossinlineKt$fold$1 {
|
|||||||
field L$3: java.lang.Object
|
field L$3: java.lang.Object
|
||||||
field L$4: java.lang.Object
|
field L$4: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
inner class CrossinlineKt$fold$1
|
inner class CrossinlineKt$fold$1
|
||||||
method <init>(p0: kotlin.coroutines.Continuation): void
|
method <init>(p0: kotlin.coroutines.Continuation): void
|
||||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||||
@@ -320,7 +320,7 @@ final class CrossinlineKt$range$$inlined$source$1$1 {
|
|||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field L$3: java.lang.Object
|
field L$3: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: CrossinlineKt$range$$inlined$source$1
|
synthetic final field this$0: CrossinlineKt$range$$inlined$source$1
|
||||||
inner class CrossinlineKt$range$$inlined$source$1
|
inner class CrossinlineKt$range$$inlined$source$1
|
||||||
inner class CrossinlineKt$range$$inlined$source$1$1
|
inner class CrossinlineKt$range$$inlined$source$1$1
|
||||||
@@ -345,7 +345,7 @@ final class CrossinlineKt$source$1$consume$1 {
|
|||||||
field L$1: java.lang.Object
|
field L$1: java.lang.Object
|
||||||
field L$2: java.lang.Object
|
field L$2: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final @org.jetbrains.annotations.NotNull field this$0: CrossinlineKt$source$1
|
synthetic final @org.jetbrains.annotations.NotNull field this$0: CrossinlineKt$source$1
|
||||||
inner class CrossinlineKt$source$1
|
inner class CrossinlineKt$source$1
|
||||||
inner class CrossinlineKt$source$1$consume$1
|
inner class CrossinlineKt$source$1$consume$1
|
||||||
|
|||||||
Vendored
+1
-1
@@ -18,7 +18,7 @@ final class InlineWithoutStateMachineKt$complexSuspend$1 {
|
|||||||
field L$0: java.lang.Object
|
field L$0: java.lang.Object
|
||||||
field L$1: java.lang.Object
|
field L$1: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
inner class InlineWithoutStateMachineKt$complexSuspend$1
|
inner class InlineWithoutStateMachineKt$complexSuspend$1
|
||||||
method <init>(p0: kotlin.coroutines.Continuation): void
|
method <init>(p0: kotlin.coroutines.Continuation): void
|
||||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||||
|
|||||||
Vendored
+5
-5
@@ -46,7 +46,7 @@ public final class flow/InnerObjectRetransformationKt$check$$inlined$flowWith$1
|
|||||||
final class flow/InnerObjectRetransformationKt$check$1 {
|
final class flow/InnerObjectRetransformationKt$check$1 {
|
||||||
field L$0: java.lang.Object
|
field L$0: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
inner class flow/InnerObjectRetransformationKt$check$1
|
inner class flow/InnerObjectRetransformationKt$check$1
|
||||||
method <init>(p0: kotlin.coroutines.Continuation): void
|
method <init>(p0: kotlin.coroutines.Continuation): void
|
||||||
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
|
||||||
@@ -55,7 +55,7 @@ final class flow/InnerObjectRetransformationKt$check$1 {
|
|||||||
@kotlin.Metadata
|
@kotlin.Metadata
|
||||||
final class flow/InnerObjectRetransformationKt$collect$2$emit$1 {
|
final class flow/InnerObjectRetransformationKt$collect$2$emit$1 {
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final @org.jetbrains.annotations.NotNull field this$0: flow.InnerObjectRetransformationKt$collect$2
|
synthetic final @org.jetbrains.annotations.NotNull field this$0: flow.InnerObjectRetransformationKt$collect$2
|
||||||
inner class flow/InnerObjectRetransformationKt$collect$2
|
inner class flow/InnerObjectRetransformationKt$collect$2
|
||||||
inner class flow/InnerObjectRetransformationKt$collect$2$emit$1
|
inner class flow/InnerObjectRetransformationKt$collect$2$emit$1
|
||||||
@@ -76,7 +76,7 @@ public final class flow/InnerObjectRetransformationKt$collect$2 {
|
|||||||
@kotlin.Metadata
|
@kotlin.Metadata
|
||||||
final class flow/InnerObjectRetransformationKt$flow$1$collect$1 {
|
final class flow/InnerObjectRetransformationKt$flow$1$collect$1 {
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final @org.jetbrains.annotations.NotNull field this$0: flow.InnerObjectRetransformationKt$flow$1
|
synthetic final @org.jetbrains.annotations.NotNull field this$0: flow.InnerObjectRetransformationKt$flow$1
|
||||||
inner class flow/InnerObjectRetransformationKt$flow$1
|
inner class flow/InnerObjectRetransformationKt$flow$1
|
||||||
inner class flow/InnerObjectRetransformationKt$flow$1$collect$1
|
inner class flow/InnerObjectRetransformationKt$flow$1$collect$1
|
||||||
@@ -97,7 +97,7 @@ public final class flow/InnerObjectRetransformationKt$flow$1 {
|
|||||||
@kotlin.Metadata
|
@kotlin.Metadata
|
||||||
final class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$1$1 {
|
final class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$1$1 {
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: flow.InnerObjectRetransformationKt$flowWith$$inlined$flow$1
|
synthetic final field this$0: flow.InnerObjectRetransformationKt$flowWith$$inlined$flow$1
|
||||||
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$1
|
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$1
|
||||||
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$1$1
|
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$1$1
|
||||||
@@ -119,7 +119,7 @@ public final class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$1 {
|
|||||||
@kotlin.Metadata
|
@kotlin.Metadata
|
||||||
final class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$2$1 {
|
final class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$2$1 {
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final field this$0: flow.InnerObjectRetransformationKt$flowWith$$inlined$flow$2
|
synthetic final field this$0: flow.InnerObjectRetransformationKt$flowWith$$inlined$flow$2
|
||||||
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$2
|
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$2
|
||||||
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$2$1
|
inner class flow/InnerObjectRetransformationKt$flowWith$$inlined$flow$2$1
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ final class Override5Kt$box$1 {
|
|||||||
final class Override5Kt$inlineMe$1$generic$1 {
|
final class Override5Kt$inlineMe$1$generic$1 {
|
||||||
field L$0: java.lang.Object
|
field L$0: java.lang.Object
|
||||||
field label: int
|
field label: int
|
||||||
synthetic @org.jetbrains.annotations.Nullable field result: java.lang.Object
|
synthetic field result: java.lang.Object
|
||||||
synthetic final @org.jetbrains.annotations.NotNull field this$0: Override5Kt$inlineMe$1
|
synthetic final @org.jetbrains.annotations.NotNull field this$0: Override5Kt$inlineMe$1
|
||||||
inner class Override5Kt$inlineMe$1
|
inner class Override5Kt$inlineMe$1
|
||||||
inner class Override5Kt$inlineMe$1$generic$1
|
inner class Override5Kt$inlineMe$1$generic$1
|
||||||
|
|||||||
-2
@@ -1,5 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// TODO: KT-37084
|
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// COMMON_COROUTINES_TEST
|
// COMMON_COROUTINES_TEST
|
||||||
import COROUTINES_PACKAGE.*
|
import COROUTINES_PACKAGE.*
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// TODO: KT-37084
|
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// COMMON_COROUTINES_TEST
|
// COMMON_COROUTINES_TEST
|
||||||
import COROUTINES_PACKAGE.*
|
import COROUTINES_PACKAGE.*
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// TODO: KT-37088
|
|
||||||
// COMMON_COROUTINES_TEST
|
// COMMON_COROUTINES_TEST
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user