JVM_IR: don't generate nullability annotations on synthetic declarations

Fixes KT-36993 and some other related issues.
This commit is contained in:
Dmitry Petrov
2020-06-23 16:15:20 +03:00
parent d477d9eb43
commit 4e92c79bc4
7 changed files with 10 additions and 13 deletions
@@ -277,7 +277,7 @@ abstract class AnnotationCodegen(
companion object { companion object {
private fun isInvisibleFromTheOutside(declaration: IrDeclaration?): Boolean { private fun isInvisibleFromTheOutside(declaration: IrDeclaration?): Boolean {
if (declaration is IrSimpleFunction && declaration.origin.isSynthetic) { if (declaration != null && declaration.origin.isSynthetic) {
return true return true
} }
if (declaration is IrDeclarationWithVisibility) { if (declaration is IrDeclarationWithVisibility) {
@@ -1,5 +1,4 @@
// !LANGUAGE: +UseGetterNameForPropertyAnnotationsMethodOnJvm // !LANGUAGE: +UseGetterNameForPropertyAnnotationsMethodOnJvm
// IGNORE_BACKEND: JVM_IR
import kotlin.reflect.KProperty import kotlin.reflect.KProperty
@@ -1,5 +1,4 @@
// !LANGUAGE: -ProperVisibilityForCompanionObjectInstanceField // !LANGUAGE: -ProperVisibilityForCompanionObjectInstanceField
// IGNORE_BACKEND: JVM_IR
open class TestProtectedCompanionInClass { open class TestProtectedCompanionInClass {
protected companion object protected companion object
@@ -4,7 +4,7 @@ final class Controller$multipleSuspensions$1 {
field L$0: java.lang.Object field L$0: java.lang.Object
field label: int field label: int
synthetic field result: java.lang.Object synthetic field result: java.lang.Object
synthetic final @org.jetbrains.annotations.NotNull field this$0: Controller synthetic final field this$0: Controller
inner class Controller$multipleSuspensions$1 inner class Controller$multipleSuspensions$1
method <init>(p0: Controller, p1: kotlin.coroutines.Continuation): void method <init>(p0: Controller, p1: 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
@@ -16,7 +16,7 @@ final class Controller$nonTailCall$1 {
field L$0: java.lang.Object field L$0: java.lang.Object
field label: int field label: int
synthetic field result: java.lang.Object synthetic field result: java.lang.Object
synthetic final @org.jetbrains.annotations.NotNull field this$0: Controller synthetic final field this$0: Controller
inner class Controller$nonTailCall$1 inner class Controller$nonTailCall$1
method <init>(p0: Controller, p1: kotlin.coroutines.Continuation): void method <init>(p0: Controller, p1: 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
@@ -36,7 +36,7 @@ public final class Controller {
@kotlin.coroutines.jvm.internal.DebugMetadata @kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata @kotlin.Metadata
final class CoroutineFieldsKt$box$1 { final class CoroutineFieldsKt$box$1 {
synthetic final @org.jetbrains.annotations.NotNull field $result: kotlin.jvm.internal.Ref$ObjectRef synthetic final field $result: kotlin.jvm.internal.Ref$ObjectRef
field J$0: long field J$0: long
field L$0: java.lang.Object field L$0: java.lang.Object
field L$1: java.lang.Object field L$1: java.lang.Object
@@ -12,7 +12,7 @@ public interface FlowCollector {
public final class TcoContinuationKt$collect$2$emit$1 { public final class TcoContinuationKt$collect$2$emit$1 {
field label: int field label: int
synthetic field result: java.lang.Object synthetic field result: java.lang.Object
synthetic final @org.jetbrains.annotations.NotNull field this$0: TcoContinuationKt$collect$2 synthetic final field this$0: TcoContinuationKt$collect$2
inner class TcoContinuationKt$collect$2 inner class TcoContinuationKt$collect$2
inner class TcoContinuationKt$collect$2$emit$1 inner class TcoContinuationKt$collect$2$emit$1
public method <init>(p0: TcoContinuationKt$collect$2, p1: kotlin.coroutines.Continuation): void public method <init>(p0: TcoContinuationKt$collect$2, p1: kotlin.coroutines.Continuation): void
@@ -21,7 +21,7 @@ public final class TcoContinuationKt$collect$2$emit$1 {
@kotlin.Metadata @kotlin.Metadata
public final class TcoContinuationKt$collect$2 { public final class TcoContinuationKt$collect$2 {
synthetic final @org.jetbrains.annotations.NotNull field $action: kotlin.jvm.functions.Function2 synthetic final field $action: kotlin.jvm.functions.Function2
inner class TcoContinuationKt$collect$2 inner class TcoContinuationKt$collect$2
inner class TcoContinuationKt$collect$2$emit$1 inner class TcoContinuationKt$collect$2$emit$1
public method <init>(p0: kotlin.jvm.functions.Function2): void public method <init>(p0: kotlin.jvm.functions.Function2): void
@@ -33,7 +33,7 @@ public final class TcoContinuationKt$collect$2 {
public final class TcoContinuationKt$flow$1$collect$1 { public final class TcoContinuationKt$flow$1$collect$1 {
field label: int field label: int
synthetic field result: java.lang.Object synthetic field result: java.lang.Object
synthetic final @org.jetbrains.annotations.NotNull field this$0: TcoContinuationKt$flow$1 synthetic final field this$0: TcoContinuationKt$flow$1
inner class TcoContinuationKt$flow$1 inner class TcoContinuationKt$flow$1
inner class TcoContinuationKt$flow$1$collect$1 inner class TcoContinuationKt$flow$1$collect$1
public method <init>(p0: TcoContinuationKt$flow$1, p1: kotlin.coroutines.Continuation): void public method <init>(p0: TcoContinuationKt$flow$1, p1: kotlin.coroutines.Continuation): void
@@ -42,7 +42,7 @@ public final class TcoContinuationKt$flow$1$collect$1 {
@kotlin.Metadata @kotlin.Metadata
public final class TcoContinuationKt$flow$1 { public final class TcoContinuationKt$flow$1 {
synthetic final @org.jetbrains.annotations.NotNull field $block: kotlin.jvm.functions.Function2 synthetic final field $block: kotlin.jvm.functions.Function2
inner class TcoContinuationKt$flow$1 inner class TcoContinuationKt$flow$1
inner class TcoContinuationKt$flow$1$collect$1 inner class TcoContinuationKt$flow$1$collect$1
public method <init>(p0: kotlin.jvm.functions.Function2): void public method <init>(p0: kotlin.jvm.functions.Function2): void
@@ -11,7 +11,7 @@ public final class Sealed$Derived {
@kotlin.Metadata @kotlin.Metadata
public final class Sealed$Inner { public final class Sealed$Inner {
synthetic final @org.jetbrains.annotations.NotNull field this$0: Sealed synthetic final field this$0: Sealed
private final field z2: int private final field z2: int
inner class Sealed$Inner inner class Sealed$Inner
public synthetic @Ann method <init>(p0: Sealed, p1: int, @Ann p2: int, @Ann p3: java.lang.String, p4: kotlin.jvm.internal.DefaultConstructorMarker): void public synthetic @Ann method <init>(p0: Sealed, p1: int, @Ann p2: int, @Ann p3: java.lang.String, p4: kotlin.jvm.internal.DefaultConstructorMarker): void
@@ -31,7 +31,7 @@ public abstract class Sealed {
@kotlin.Metadata @kotlin.Metadata
public final class Test$Inner { public final class Test$Inner {
synthetic final @org.jetbrains.annotations.NotNull field this$0: Test synthetic final field this$0: Test
private final field z2: int private final field z2: int
inner class Test$Inner inner class Test$Inner
public synthetic @Ann method <init>(p0: Test, p1: int, @Ann p2: int, @Ann p3: java.lang.String, p4: kotlin.jvm.internal.DefaultConstructorMarker): void public synthetic @Ann method <init>(p0: Test, p1: int, @Ann p2: int, @Ann p3: java.lang.String, p4: kotlin.jvm.internal.DefaultConstructorMarker): void
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME // WITH_RUNTIME
annotation class StringRes annotation class StringRes