diff --git a/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallGenerateSynthetic.txt b/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallGenerateSynthetic.txt index 7c9ff361c04..e3b5c4822ae 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallGenerateSynthetic.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallGenerateSynthetic.txt @@ -18,13 +18,13 @@ public final class AnnotationCtorCallGenerateSyntheticKt { public synthetic inner class AnnotationCtorCallGenerateSyntheticKt$annotationImpl$Foo$0 } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Bar { // source: 'annotationCtorCallGenerateSynthetic.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Foo { // source: 'annotationCtorCallGenerateSynthetic.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallNoSynthetic.txt b/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallNoSynthetic.txt index ecc3311752a..b73759ecb3b 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallNoSynthetic.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/annotationCtorCallNoSynthetic.txt @@ -1,16 +1,16 @@ @kotlin.Metadata public final class AnnotationCtorCallNoSyntheticKt { // source: 'annotationCtorCallNoSynthetic.kt' - public final static @Foo method box(): void + public final static @Foo(bar=Bar) method box(): void } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Bar { // source: 'annotationCtorCallNoSynthetic.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Foo { // source: 'annotationCtorCallNoSynthetic.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.txt b/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.txt index 7400c511c83..e236474302d 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'annotationsOnDelegatedMembers.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt b/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt index 2b9ea731bc2..5411dc17f95 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt @@ -10,57 +10,57 @@ public final class A { public final method getX(): int } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[FIELD]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[FIELD]) @kotlin.Metadata public annotation class AnnField { // source: 'defaultTargets.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[FIELD, PROPERTY]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[FIELD]) @kotlin.Metadata public annotation class AnnFieldProperty { // source: 'defaultTargets.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[VALUE_PARAMETER, FIELD]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[FIELD, PARAMETER]) @kotlin.Metadata public annotation class AnnParameterField { // source: 'defaultTargets.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[VALUE_PARAMETER, PROPERTY]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[PARAMETER]) @kotlin.Metadata public annotation class AnnParameterProperty { // source: 'defaultTargets.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[PROPERTY]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class AnnProperty { // source: 'defaultTargets.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[FIELD, TYPE]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[FIELD, TYPE_USE]) @kotlin.Metadata public annotation class AnnTypeField { // source: 'defaultTargets.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[FIELD]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[FIELD]) @kotlin.Metadata public annotation class Anno { // source: 'defaultTargets.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/deprecatedJvmOverloads.txt b/compiler/testData/codegen/bytecodeListing/annotations/deprecatedJvmOverloads.txt index fd84ab0fca9..9087bf86599 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/deprecatedJvmOverloads.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/deprecatedJvmOverloads.txt @@ -3,6 +3,6 @@ public final class Foo { // source: 'deprecatedJvmOverloads.kt' public method (): void public synthetic deprecated static method bar$default(p0: Foo, p1: java.lang.String, p2: int, p3: java.lang.Object): void - public deprecated final @kotlin.Deprecated @kotlin.jvm.JvmOverloads method bar(): void - public deprecated final @kotlin.Deprecated @kotlin.jvm.JvmOverloads method bar(@org.jetbrains.annotations.NotNull p0: java.lang.String): void + public deprecated final @kotlin.Deprecated(message="Foo") @kotlin.jvm.JvmOverloads method bar(): void + public deprecated final @kotlin.Deprecated(message="Foo") @kotlin.jvm.JvmOverloads method bar(@org.jetbrains.annotations.NotNull p0: java.lang.String): void } diff --git a/compiler/testData/codegen/bytecodeListing/annotations/internalPropertyOrTypealias.txt b/compiler/testData/codegen/bytecodeListing/annotations/internalPropertyOrTypealias.txt index 83a72a18244..861e22dd8e3 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/internalPropertyOrTypealias.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/internalPropertyOrTypealias.txt @@ -1,6 +1,6 @@ -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[PROPERTY, TYPEALIAS]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class Anno { // source: 'internalPropertyOrTypealias.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/kt27895.txt b/compiler/testData/codegen/bytecodeListing/annotations/kt27895.txt index 5d67034bad9..660dc0c784a 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/kt27895.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/kt27895.txt @@ -1,6 +1,6 @@ -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[FIELD]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[FIELD]) @kotlin.Metadata public annotation class Anno { // source: 'kt27895.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/kt43399.txt b/compiler/testData/codegen/bytecodeListing/annotations/kt43399.txt index a8524a085a2..cbdf97ee0d1 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/kt43399.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/kt43399.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class A { // source: 'kt43399.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/kt43459.txt b/compiler/testData/codegen/bytecodeListing/annotations/kt43459.txt index 74b6984e128..4d634640335 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/kt43459.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/kt43459.txt @@ -6,15 +6,15 @@ public final class A { public final @org.jetbrains.annotations.NotNull method getA(@org.jetbrains.annotations.Nullable p0: java.lang.Integer): java.lang.String } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Anno { // source: 'kt43459.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[TYPE]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[TYPE_USE]) @kotlin.Metadata public annotation class TypeAnno { // source: 'kt43459.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/kt9320.txt b/compiler/testData/codegen/bytecodeListing/annotations/kt9320.txt index 29f1197af5f..b0545a10f1e 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/kt9320.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/kt9320.txt @@ -1,13 +1,13 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'kt9320.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[EXPRESSION]) +@kotlin.annotation.Retention(value=SOURCE) +@java.lang.annotation.Retention(value=SOURCE) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class AnnExpr { // source: 'kt9320.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/kt9320_ir.txt b/compiler/testData/codegen/bytecodeListing/annotations/kt9320_ir.txt index a5b9dc7a183..faab6558e83 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/kt9320_ir.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/kt9320_ir.txt @@ -1,13 +1,13 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'kt9320.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[EXPRESSION]) +@kotlin.annotation.Retention(value=SOURCE) +@java.lang.annotation.Retention(value=SOURCE) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class AnnExpr { // source: 'kt9320.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/literals.txt b/compiler/testData/codegen/bytecodeListing/annotations/literals.txt index 24b9caa6303..df72e525a1b 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/literals.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/literals.txt @@ -1,23 +1,23 @@ -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[CLASS]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[TYPE]) @kotlin.Metadata public annotation class ClsAnn { // source: 'literals.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[EXPRESSION]) +@kotlin.annotation.Retention(value=SOURCE) +@java.lang.annotation.Retention(value=SOURCE) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class ExprAnn { // source: 'literals.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[FUNCTION]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[METHOD]) @kotlin.Metadata public annotation class FunAnn { // source: 'literals.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/literals_ir.txt b/compiler/testData/codegen/bytecodeListing/annotations/literals_ir.txt index 9aa40b0e915..330fbd3672f 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/literals_ir.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/literals_ir.txt @@ -1,23 +1,23 @@ -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[CLASS]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[TYPE]) @kotlin.Metadata public annotation class ClsAnn { // source: 'literals.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[EXPRESSION]) +@kotlin.annotation.Retention(value=SOURCE) +@java.lang.annotation.Retention(value=SOURCE) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class ExprAnn { // source: 'literals.kt' } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[FUNCTION]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[METHOD]) @kotlin.Metadata public annotation class FunAnn { // source: 'literals.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/localClassWithCapturedParams.txt b/compiler/testData/codegen/bytecodeListing/annotations/localClassWithCapturedParams.txt index 75c2d78180c..45c5c62e2c1 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/localClassWithCapturedParams.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/localClassWithCapturedParams.txt @@ -6,7 +6,7 @@ public final class LocalClassWithCapturedParamsKt$localCaptured$A { private final field x: int private final @org.jetbrains.annotations.NotNull field z: java.lang.String inner (local) class LocalClassWithCapturedParamsKt$localCaptured$A A - public method (p0: int, @Simple @org.jetbrains.annotations.NotNull p1: java.lang.String): void + public method (p0: int, @Simple(value="K") @org.jetbrains.annotations.NotNull p1: java.lang.String): void public final method getX(): int public final @org.jetbrains.annotations.NotNull method getZ(): java.lang.String } @@ -18,7 +18,7 @@ public final class LocalClassWithCapturedParamsKt { public final static @org.jetbrains.annotations.NotNull method localCaptured(): java.lang.Object } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Simple { // source: 'localClassWithCapturedParams.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.txt b/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.txt index 43e6a2a4066..72121b604ff 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'noAnnotationsInSyntheticAccessors.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt b/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt index 5040433d92a..057fa4f0e80 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt @@ -19,43 +19,43 @@ public final class A { public final @AnnSetter method setY(p0: int): void } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class AnnDelegate { // source: 'onProperties.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class AnnField { // source: 'onProperties.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class AnnGetter { // source: 'onProperties.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class AnnParam { // source: 'onProperties.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class AnnProp { // source: 'onProperties.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class AnnProp2 { // source: 'onProperties.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class AnnSetter { // source: 'onProperties.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt b/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt index 12a1d983db9..39b54d02911 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt @@ -6,7 +6,7 @@ public final class A { public final @org.jetbrains.annotations.NotNull method getP(@Ann @org.jetbrains.annotations.Nullable p0: java.lang.String): java.lang.String } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'onReceiver.kt' diff --git a/compiler/testData/codegen/bytecodeListing/annotations/unsignedTypes.txt b/compiler/testData/codegen/bytecodeListing/annotations/unsignedTypes.txt index 882ac2fc4ea..8c801895a56 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/unsignedTypes.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/unsignedTypes.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Anno { // source: 'unsignedTypes.kt' diff --git a/compiler/testData/codegen/bytecodeListing/defaultArguments/internalNameMangling.txt b/compiler/testData/codegen/bytecodeListing/defaultArguments/internalNameMangling.txt index e6d5bcdb0ec..c0160c76f0f 100644 --- a/compiler/testData/codegen/bytecodeListing/defaultArguments/internalNameMangling.txt +++ b/compiler/testData/codegen/bytecodeListing/defaultArguments/internalNameMangling.txt @@ -7,7 +7,7 @@ public final class test/A { public synthetic static method internalFunction$main$default(p0: test.A, p1: java.lang.String, p2: int, p3: java.lang.Object): void public final method internalFunction$main(@org.jetbrains.annotations.NotNull p0: java.lang.String): void public synthetic static method internalJvmNameFunction$default(p0: test.A, p1: java.lang.String, p2: int, p3: java.lang.Object): void - public final @kotlin.jvm.JvmName method internalJvmNameFunction(@org.jetbrains.annotations.NotNull p0: java.lang.String): void + public final @kotlin.jvm.JvmName(name="internalJvmNameFunction") method internalJvmNameFunction(@org.jetbrains.annotations.NotNull p0: java.lang.String): void public synthetic static method publicFunction$default(p0: test.A, p1: java.lang.String, p2: int, p3: java.lang.Object): void public final method publicFunction(@org.jetbrains.annotations.NotNull p0: java.lang.String): void } diff --git a/compiler/testData/codegen/bytecodeListing/defaultImpls.txt b/compiler/testData/codegen/bytecodeListing/defaultImpls.txt index 517aca54f96..8c7e72e00bc 100644 --- a/compiler/testData/codegen/bytecodeListing/defaultImpls.txt +++ b/compiler/testData/codegen/bytecodeListing/defaultImpls.txt @@ -3,8 +3,8 @@ public interface A { // source: 'defaultImpls.kt' } -@kotlin.annotation.Retention -@java.lang.annotation.Retention +@kotlin.annotation.Retention(value=BINARY) +@java.lang.annotation.Retention(value=CLASS) @kotlin.Metadata public annotation class Anno { // source: 'defaultImpls.kt' diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedClass.txt b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedClass.txt index 9b56375fc6e..b687bd5dad2 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedClass.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedClass.txt @@ -1,18 +1,18 @@ -@kotlin.Deprecated +@kotlin.Deprecated(message="", level=ERROR) @kotlin.Metadata public deprecated final class E { // source: 'deprecatedClass.kt' public method (): void } -@kotlin.Deprecated +@kotlin.Deprecated(message="", level=HIDDEN) @kotlin.Metadata public deprecated final class H { // source: 'deprecatedClass.kt' public method (): void } -@kotlin.Deprecated +@kotlin.Deprecated(message="", level=WARNING) @kotlin.Metadata public deprecated final class W { // source: 'deprecatedClass.kt' diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields.txt b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields.txt index cf8646402e8..a56b7ed312c 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields.txt @@ -2,9 +2,9 @@ public final enum class Test { // source: 'deprecatedEnumEntryFields.kt' private synthetic final static field $VALUES: Test[] - public deprecated final enum static @kotlin.Deprecated field ENTRY1: Test + public deprecated final enum static @kotlin.Deprecated(message="") field ENTRY1: Test public final enum static field ENTRY2: Test - public deprecated final enum static @kotlin.Deprecated field ENTRY3: Test + public deprecated final enum static @kotlin.Deprecated(message="") field ENTRY3: Test static method (): void private method (p0: java.lang.String, p1: int): void public static method valueOf(p0: java.lang.String): Test diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields_ir.txt b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields_ir.txt index 0e5e09e6835..613ab4554b1 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields_ir.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedEnumEntryFields_ir.txt @@ -2,9 +2,9 @@ public final enum class Test { // source: 'deprecatedEnumEntryFields.kt' private synthetic final static field $VALUES: Test[] - public deprecated final enum static @kotlin.Deprecated field ENTRY1: Test + public deprecated final enum static @kotlin.Deprecated(message="") field ENTRY1: Test public final enum static field ENTRY2: Test - public deprecated final enum static @kotlin.Deprecated field ENTRY3: Test + public deprecated final enum static @kotlin.Deprecated(message="") field ENTRY3: Test private synthetic final static method $values(): Test[] static method (): void private method (p0: java.lang.String, p1: int): void diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedInMultifileClass.txt b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedInMultifileClass.txt index 69d960c5e50..c62e22b3bfd 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedInMultifileClass.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedInMultifileClass.txt @@ -1,21 +1,21 @@ @kotlin.Metadata public final class test/A { // source: 'part.kt' - public deprecated final static @kotlin.Deprecated method f(): void + public deprecated final static @kotlin.Deprecated(message="") method f(): void public deprecated final static method getExt(p0: int): int public final static method getExtA(p0: int): int public deprecated final static @org.jetbrains.annotations.NotNull method getStr(): java.lang.String - public deprecated final static @kotlin.Deprecated method setExtA(p0: int, p1: int): void + public deprecated final static @kotlin.Deprecated(message="") method setExtA(p0: int, p1: int): void } @kotlin.Metadata synthetic final class test/A__PartKt { // source: 'part.kt' - public deprecated final static @kotlin.Deprecated method f(): void - public synthetic deprecated static @kotlin.Deprecated method getExt$annotations(p0: int): void + public deprecated final static @kotlin.Deprecated(message="") method f(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getExt$annotations(p0: int): void public deprecated final static method getExt(p0: int): int public final static method getExtA(p0: int): int - public synthetic deprecated static @kotlin.Deprecated method getStr$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getStr$annotations(): void public deprecated final static @org.jetbrains.annotations.NotNull method getStr(): java.lang.String - public deprecated final static @kotlin.Deprecated method setExtA(p0: int, p1: int): void + public deprecated final static @kotlin.Deprecated(message="") method setExtA(p0: int, p1: int): void } diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedLateinitVar.txt b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedLateinitVar.txt index 760ff4b5e16..d9ab870a6ea 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedLateinitVar.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedLateinitVar.txt @@ -2,7 +2,7 @@ public final class DeprecatedLateinitVarKt { // source: 'deprecatedLateinitVar.kt' public deprecated static field lateinitVar: java.lang.String - public synthetic deprecated static @kotlin.Deprecated method getLateinitVar$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getLateinitVar$annotations(): void public deprecated final static @org.jetbrains.annotations.NotNull method getLateinitVar(): java.lang.String public deprecated final static method setLateinitVar(@org.jetbrains.annotations.NotNull p0: java.lang.String): void } diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedProperty.txt b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedProperty.txt index 739b7115338..95b6a984d61 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedProperty.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/deprecatedProperty.txt @@ -9,31 +9,31 @@ public final class DeprecatedPropertyKt { private deprecated static field testVarWithExplicitDefaultGetSet: int private deprecated static field testVarWithExplicitDefaultSet: int static method (): void - public synthetic deprecated static @kotlin.Deprecated method getTestExtVal$annotations(p0: java.lang.Object): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestExtVal$annotations(p0: java.lang.Object): void public deprecated final static method getTestExtVal(@org.jetbrains.annotations.NotNull p0: java.lang.Object): int - public synthetic deprecated static @kotlin.Deprecated method getTestGenExtVal$annotations(p0: java.util.List): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestGenExtVal$annotations(p0: java.util.List): void public deprecated final static method getTestGenExtVal(@org.jetbrains.annotations.NotNull p0: java.util.List): int - public synthetic deprecated static @kotlin.Deprecated method getTestLateinitVar$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestLateinitVar$annotations(): void public deprecated final static @org.jetbrains.annotations.NotNull method getTestLateinitVar(): java.lang.Object - public synthetic deprecated static @kotlin.Deprecated method getTestVal$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestVal$annotations(): void public deprecated final static method getTestVal(): int - public synthetic deprecated static @kotlin.Deprecated method getTestValWithExplicitDefaultGet$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestValWithExplicitDefaultGet$annotations(): void public deprecated final static method getTestValWithExplicitDefaultGet(): int - public synthetic deprecated static @kotlin.Deprecated method getTestValWithExplicitGet$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestValWithExplicitGet$annotations(): void public deprecated final static method getTestValWithExplicitGet(): int - public synthetic deprecated static @kotlin.Deprecated method getTestVar$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestVar$annotations(): void public deprecated final static method getTestVar(): int - public synthetic deprecated static @kotlin.Deprecated method getTestVarWithExplicitDefaultGet$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestVarWithExplicitDefaultGet$annotations(): void public deprecated final static method getTestVarWithExplicitDefaultGet(): int - public synthetic deprecated static @kotlin.Deprecated method getTestVarWithExplicitDefaultGetSet$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestVarWithExplicitDefaultGetSet$annotations(): void public deprecated final static method getTestVarWithExplicitDefaultGetSet(): int - public synthetic deprecated static @kotlin.Deprecated method getTestVarWithExplicitDefaultSet$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestVarWithExplicitDefaultSet$annotations(): void public deprecated final static method getTestVarWithExplicitDefaultSet(): int - public synthetic deprecated static @kotlin.Deprecated method getTestVarWithExplicitGetSet$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTestVarWithExplicitGetSet$annotations(): void public deprecated final static method getTestVarWithExplicitGetSet(): int - public synthetic deprecated static @kotlin.Deprecated method getTextExtVar$annotations(p0: java.lang.Object): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTextExtVar$annotations(p0: java.lang.Object): void public deprecated final static method getTextExtVar(@org.jetbrains.annotations.NotNull p0: java.lang.Object): int - public synthetic deprecated static @kotlin.Deprecated method getTextGenExtVar$annotations(p0: java.util.List): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getTextGenExtVar$annotations(p0: java.util.List): void public deprecated final static method getTextGenExtVar(@org.jetbrains.annotations.NotNull p0: java.util.List): int public deprecated final static method setTestLateinitVar(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void public deprecated final static method setTestVar(p0: int): void @@ -48,7 +48,7 @@ public final class DeprecatedPropertyKt { @kotlin.Metadata public final class I$DefaultImpls { // source: 'deprecatedProperty.kt' - public synthetic deprecated static @kotlin.Deprecated method getId$annotations(p0: java.lang.Object): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getId$annotations(p0: java.lang.Object): void public deprecated static method getId(@org.jetbrains.annotations.NotNull p0: I, p1: java.lang.Object): java.lang.Object public final inner class I$DefaultImpls } diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/hidden.txt b/compiler/testData/codegen/bytecodeListing/deprecated/hidden.txt index 2df2d4e4037..d97e2a0e5dd 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/hidden.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/hidden.txt @@ -2,18 +2,18 @@ public class Base { // source: 'hidden.kt' public method (): void - public synthetic deprecated @kotlin.Deprecated method f(): void + public synthetic deprecated @kotlin.Deprecated(message="", level=HIDDEN) method f(): void } @kotlin.Metadata public final class Derived { // source: 'hidden.kt' - public synthetic deprecated @kotlin.Deprecated method (): void + public synthetic deprecated @kotlin.Deprecated(message="", level=HIDDEN) method (): void public synthetic method f(): void } @kotlin.Metadata public final class HiddenKt { // source: 'hidden.kt' - public synthetic deprecated final static @kotlin.Deprecated @kotlin.DeprecatedSinceKotlin method hidden(): void + public synthetic deprecated final static @kotlin.Deprecated(message="") @kotlin.DeprecatedSinceKotlin(hiddenSince="1.0") method hidden(): void } diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.txt b/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.txt index 83b30249779..61b0167b423 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.txt @@ -51,9 +51,9 @@ public final class ExplicitOverride2 { @kotlin.Metadata public final class IFoo$DefaultImpls { // source: 'inheritingDeprecation.kt' - public synthetic deprecated static @kotlin.Deprecated method getExtProp$annotations(p0: java.lang.String): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getExtProp$annotations(p0: java.lang.String): void public deprecated static @org.jetbrains.annotations.NotNull method getExtProp(@org.jetbrains.annotations.NotNull p0: IFoo, @org.jetbrains.annotations.NotNull p1: java.lang.String): java.lang.String - public synthetic deprecated static @kotlin.Deprecated method getProp$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getProp$annotations(): void public deprecated static @org.jetbrains.annotations.NotNull method getProp(@org.jetbrains.annotations.NotNull p0: IFoo): java.lang.String public final inner class IFoo$DefaultImpls } diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/inlineClassTypesInSignature.txt b/compiler/testData/codegen/bytecodeListing/deprecated/inlineClassTypesInSignature.txt index e95a23985ff..03cfd77a2a2 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/inlineClassTypesInSignature.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/inlineClassTypesInSignature.txt @@ -2,9 +2,9 @@ public abstract class A { // source: 'inlineClassTypesInSignature.kt' public method (): void - public synthetic deprecated static @kotlin.Deprecated method getHidden-w2LRezQ$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="", level=HIDDEN) method getHidden-w2LRezQ$annotations(): void public synthetic deprecated abstract method getHidden-w2LRezQ(): byte - public synthetic deprecated static @kotlin.Deprecated method getWarn-w2LRezQ$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") method getWarn-w2LRezQ$annotations(): void public deprecated abstract method getWarn-w2LRezQ(): byte public synthetic deprecated abstract method setHidden-7apg3OU(p0: byte): void public deprecated abstract method setWarn-7apg3OU(p0: byte): void diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/jvmStaticDeprecatedProperty.txt b/compiler/testData/codegen/bytecodeListing/deprecated/jvmStaticDeprecatedProperty.txt index 81a84474400..2d8694a5d6d 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/jvmStaticDeprecatedProperty.txt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/jvmStaticDeprecatedProperty.txt @@ -3,7 +3,7 @@ public final class TestClass$Companion { // source: 'jvmStaticDeprecatedProperty.kt' private method (): void public synthetic method (p0: kotlin.jvm.internal.DefaultConstructorMarker): void - public synthetic deprecated static @kotlin.Deprecated @kotlin.jvm.JvmStatic method getA$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") @kotlin.jvm.JvmStatic method getA$annotations(): void public deprecated final method getA(): int public final inner class TestClass$Companion } @@ -27,7 +27,7 @@ public final class TestInterface$Companion { private deprecated final static field a: int static method (): void private method (): void - public synthetic deprecated static @kotlin.Deprecated @kotlin.jvm.JvmStatic method getA$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") @kotlin.jvm.JvmStatic method getA$annotations(): void public deprecated final method getA(): int public final inner class TestInterface$Companion } @@ -48,6 +48,6 @@ public final class TestObject { private deprecated final static field a: int static method (): void private method (): void - public synthetic deprecated static @kotlin.Deprecated @kotlin.jvm.JvmStatic method getA$annotations(): void + public synthetic deprecated static @kotlin.Deprecated(message="") @kotlin.jvm.JvmStatic method getA$annotations(): void public deprecated final static method getA(): int } diff --git a/compiler/testData/codegen/bytecodeListing/enum.txt b/compiler/testData/codegen/bytecodeListing/enum.txt index 5fb7723c28d..1f6433346b7 100644 --- a/compiler/testData/codegen/bytecodeListing/enum.txt +++ b/compiler/testData/codegen/bytecodeListing/enum.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'enum.kt' diff --git a/compiler/testData/codegen/bytecodeListing/enum_ir.txt b/compiler/testData/codegen/bytecodeListing/enum_ir.txt index 0b56f38dbac..211668e3b96 100644 --- a/compiler/testData/codegen/bytecodeListing/enum_ir.txt +++ b/compiler/testData/codegen/bytecodeListing/enum_ir.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'enum.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt index f2414ae6036..ce1e87d12aa 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotatedPropertyWithInlineClassTypeInSignature.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Anno { // source: 'annotatedPropertyWithInlineClassTypeInSignature.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationGetters.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationGetters.txt index bf0a9158cb1..9c19a7da4ac 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationGetters.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationGetters.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'annotationGetters.kt' @@ -12,5 +12,5 @@ public annotation class Ann { @kotlin.Metadata public final class AnnotationGettersKt { // source: 'annotationGetters.kt' - public final static @Ann method foo(): void + public final static @Ann(u=1, uba=[1], usa=[], uia=[1, 1], ula=[1, 1]) method foo(): void } diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt index 13e92ea3dc9..89683fa6cdb 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'annotationsOnHiddenConstructor.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt index cd375cb50d3..ff421956cf3 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/inlineClassWithManyKindsOfMembers.txt @@ -1,43 +1,43 @@ -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[CLASS, CONSTRUCTOR, FUNCTION, PROPERTY]) +@kotlin.annotation.Retention(value=BINARY) +@java.lang.annotation.Retention(value=CLASS) +@java.lang.annotation.Target(value=[TYPE, METHOD, CONSTRUCTOR]) @kotlin.Metadata public annotation class A { // source: 'inlineClassWithManyKindsOfMembers.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[PROPERTY_GETTER]) +@kotlin.annotation.Retention(value=BINARY) +@java.lang.annotation.Retention(value=CLASS) +@java.lang.annotation.Target(value=[METHOD]) @kotlin.Metadata public annotation class AGet { // source: 'inlineClassWithManyKindsOfMembers.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[VALUE_PARAMETER]) +@kotlin.annotation.Retention(value=BINARY) +@java.lang.annotation.Retention(value=CLASS) +@java.lang.annotation.Target(value=[PARAMETER]) @kotlin.Metadata public annotation class AReceiver { // source: 'inlineClassWithManyKindsOfMembers.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[PROPERTY_SETTER]) +@kotlin.annotation.Retention(value=BINARY) +@java.lang.annotation.Retention(value=CLASS) +@java.lang.annotation.Target(value=[METHOD]) @kotlin.Metadata public annotation class ASet { // source: 'inlineClassWithManyKindsOfMembers.kt' } -@kotlin.annotation.Target -@kotlin.annotation.Retention -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[VALUE_PARAMETER]) +@kotlin.annotation.Retention(value=BINARY) +@java.lang.annotation.Retention(value=CLASS) +@java.lang.annotation.Target(value=[PARAMETER]) @kotlin.Metadata public annotation class ASetParam { // source: 'inlineClassWithManyKindsOfMembers.kt' diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt index f1fe0d53a8a..25b3f9a3df0 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/jvmName.txt @@ -2,8 +2,8 @@ public final class C { // source: 'jvmName.kt' public method (): void - public final @kotlin.jvm.JvmName @org.jetbrains.annotations.NotNull method test(): java.lang.Object - public final @kotlin.jvm.JvmName @org.jetbrains.annotations.NotNull method test(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object + public final @kotlin.jvm.JvmName(name="test") @org.jetbrains.annotations.NotNull method test(): java.lang.Object + public final @kotlin.jvm.JvmName(name="test") @org.jetbrains.annotations.NotNull method test(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object } @kotlin.jvm.JvmInline @@ -28,9 +28,9 @@ public final class Foo { @kotlin.Metadata public final class JvmNameKt { // source: 'jvmName.kt' - public final static @kotlin.jvm.JvmName method bar(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void - public final static @kotlin.jvm.JvmName method baz(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void - public final static @kotlin.jvm.JvmName method extensionFun(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void - public final static @kotlin.jvm.JvmName @org.jetbrains.annotations.NotNull method test(): java.lang.Object - public final static @kotlin.jvm.JvmName @org.jetbrains.annotations.NotNull method test(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object + public final static @kotlin.jvm.JvmName(name="bar") method bar(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void + public final static @kotlin.jvm.JvmName(name="baz") method baz(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void + public final static @kotlin.jvm.JvmName(name="extensionFun") method extensionFun(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void + public final static @kotlin.jvm.JvmName(name="test") @org.jetbrains.annotations.NotNull method test(): java.lang.Object + public final static @kotlin.jvm.JvmName(name="test") @org.jetbrains.annotations.NotNull method test(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object } diff --git a/compiler/testData/codegen/bytecodeListing/jvm8/defaults/allCompatibility/interfaceProperty.txt b/compiler/testData/codegen/bytecodeListing/jvm8/defaults/allCompatibility/interfaceProperty.txt index aa34008b0d6..fafd203f42e 100644 --- a/compiler/testData/codegen/bytecodeListing/jvm8/defaults/allCompatibility/interfaceProperty.txt +++ b/compiler/testData/codegen/bytecodeListing/jvm8/defaults/allCompatibility/interfaceProperty.txt @@ -12,9 +12,9 @@ public interface Deprecated { public final inner class Deprecated$DefaultImpls } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[PROPERTY]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class Foo { // source: 'interfaceProperty.kt' diff --git a/compiler/testData/codegen/bytecodeListing/jvm8/defaults/enable/interfaceProperty.txt b/compiler/testData/codegen/bytecodeListing/jvm8/defaults/enable/interfaceProperty.txt index aa34008b0d6..fafd203f42e 100644 --- a/compiler/testData/codegen/bytecodeListing/jvm8/defaults/enable/interfaceProperty.txt +++ b/compiler/testData/codegen/bytecodeListing/jvm8/defaults/enable/interfaceProperty.txt @@ -12,9 +12,9 @@ public interface Deprecated { public final inner class Deprecated$DefaultImpls } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[PROPERTY]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class Foo { // source: 'interfaceProperty.kt' diff --git a/compiler/testData/codegen/bytecodeListing/jvm8/defaults/noDefaultImpl/interfaceProperty.txt b/compiler/testData/codegen/bytecodeListing/jvm8/defaults/noDefaultImpl/interfaceProperty.txt index e7268134d1a..40117fa22d9 100644 --- a/compiler/testData/codegen/bytecodeListing/jvm8/defaults/noDefaultImpl/interfaceProperty.txt +++ b/compiler/testData/codegen/bytecodeListing/jvm8/defaults/noDefaultImpl/interfaceProperty.txt @@ -5,9 +5,9 @@ public interface Deprecated { public abstract @org.jetbrains.annotations.NotNull method getProp(): java.lang.String } -@kotlin.annotation.Target -@java.lang.annotation.Retention -@java.lang.annotation.Target +@kotlin.annotation.Target(allowedTargets=[PROPERTY]) +@java.lang.annotation.Retention(value=RUNTIME) +@java.lang.annotation.Target(value=[]) @kotlin.Metadata public annotation class Foo { // source: 'interfaceProperty.kt' diff --git a/compiler/testData/codegen/bytecodeListing/jvmOverloadsAndParametersAnnotations.txt b/compiler/testData/codegen/bytecodeListing/jvmOverloadsAndParametersAnnotations.txt index 1ed45dce0d7..15a36d6b511 100644 --- a/compiler/testData/codegen/bytecodeListing/jvmOverloadsAndParametersAnnotations.txt +++ b/compiler/testData/codegen/bytecodeListing/jvmOverloadsAndParametersAnnotations.txt @@ -108,7 +108,7 @@ public final class DClassConstuctors { public final inner class DClassConstuctors$InnerClass } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class DefRes { // source: 'jvmOverloadsAndParametersAnnotations.kt' @@ -133,13 +133,13 @@ public final class JvmOverloadsAndParametersAnnotationsKt { public final static @kotlin.jvm.JvmOverloads method showSnackbarNoExtension(@StringRes p0: int, p1: int): void } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class LongRes { // source: 'jvmOverloadsAndParametersAnnotations.kt' } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class StringRes { // source: 'jvmOverloadsAndParametersAnnotations.kt' diff --git a/compiler/testData/codegen/bytecodeListing/kt31389.txt b/compiler/testData/codegen/bytecodeListing/kt31389.txt index 6b3246831d9..64d580cf632 100644 --- a/compiler/testData/codegen/bytecodeListing/kt31389.txt +++ b/compiler/testData/codegen/bytecodeListing/kt31389.txt @@ -13,7 +13,7 @@ public final class Annotation$Companion { public final inner class Annotation$Companion } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Annotation { // source: 'kt31389.kt' diff --git a/compiler/testData/codegen/bytecodeListing/kt31389_ir.txt b/compiler/testData/codegen/bytecodeListing/kt31389_ir.txt index 34432aabd03..1daeeebfed5 100644 --- a/compiler/testData/codegen/bytecodeListing/kt31389_ir.txt +++ b/compiler/testData/codegen/bytecodeListing/kt31389_ir.txt @@ -13,7 +13,7 @@ public final class Annotation$Companion { public final inner class Annotation$Companion } -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Annotation { // source: 'kt31389.kt' diff --git a/compiler/testData/codegen/bytecodeListing/sealed/annotationsOnSealedConstructor.txt b/compiler/testData/codegen/bytecodeListing/sealed/annotationsOnSealedConstructor.txt index f1027cc7182..6578a1f20e5 100644 --- a/compiler/testData/codegen/bytecodeListing/sealed/annotationsOnSealedConstructor.txt +++ b/compiler/testData/codegen/bytecodeListing/sealed/annotationsOnSealedConstructor.txt @@ -1,4 +1,4 @@ -@java.lang.annotation.Retention +@java.lang.annotation.Retention(value=RUNTIME) @kotlin.Metadata public annotation class Ann { // source: 'annotationsOnSealedConstructor.kt' diff --git a/compiler/testData/codegen/kapt/errorTypes.txt b/compiler/testData/codegen/kapt/errorTypes.txt index 264cc28851c..eff3db2cf68 100644 --- a/compiler/testData/codegen/kapt/errorTypes.txt +++ b/compiler/testData/codegen/kapt/errorTypes.txt @@ -1,5 +1,5 @@ @kotlin.Metadata -@kotlin.Suppress +@kotlin.Suppress(names=["UNRESOLVED_REFERENCE"]) public final class A { // source: 'errorTypes.kt' private final @org.jetbrains.annotations.NotNull field a: error.NonExistentClass diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/BytecodeListingTextCollectingVisitor.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/BytecodeListingTextCollectingVisitor.kt index dc036ab2b98..24d5b74efc5 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/BytecodeListingTextCollectingVisitor.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/BytecodeListingTextCollectingVisitor.kt @@ -88,9 +88,8 @@ class BytecodeListingTextCollectingVisitor( private var classAccess = 0 private var classSignature: String? = "" - private fun addAnnotation(desc: String, list: MutableList = declarationsInsideClass.last().annotations) { - val name = Type.getType(desc).className - list.add("@$name ") + private fun addAnnotation(annotation: String) { + declarationsInsideClass.last().annotations.add("@$annotation ") } private fun addModifier(text: String, list: MutableList) { @@ -183,23 +182,17 @@ class BytecodeListingTextCollectingVisitor( private var visibleAnnotableParameterCount = methodParamCount private var invisibleAnnotableParameterCount = methodParamCount - override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? { - if (withAnnotations) { - val type = Type.getType(desc).className - methodAnnotations += "@$type " + override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? = + visitAnnotationImpl { args -> + methodAnnotations += "@" + renderAnnotation(desc, args) + " " } - return super.visitAnnotation(desc, visible) - } - override fun visitParameterAnnotation(parameter: Int, desc: String, visible: Boolean): AnnotationVisitor? { - if (withAnnotations) { - val type = Type.getType(desc).className + override fun visitParameterAnnotation(parameter: Int, desc: String, visible: Boolean): AnnotationVisitor? = + visitAnnotationImpl { args -> parameterAnnotations.getOrPut( - parameter + methodParamCount - (if (visible) visibleAnnotableParameterCount else invisibleAnnotableParameterCount), - { arrayListOf() }).add("@$type ") + parameter + methodParamCount - (if (visible) visibleAnnotableParameterCount else invisibleAnnotableParameterCount) + ) { arrayListOf() }.add("@" + renderAnnotation(desc, args) + " ") } - return super.visitParameterAnnotation(parameter, desc, visible) - } override fun visitEnd() { val parameterWithAnnotations = parameterTypes.mapIndexed { index, parameter -> @@ -237,21 +230,69 @@ class BytecodeListingTextCollectingVisitor( if (access and Opcodes.ACC_VOLATILE != 0) addModifier("volatile", fieldDeclaration.annotations) return object : FieldVisitor(Opcodes.API_VERSION) { - override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? { - if (withAnnotations) { - addAnnotation(desc) + override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? = + visitAnnotationImpl { args -> + addAnnotation(renderAnnotation(desc, args)) } - return super.visitAnnotation(desc, visible) - } } } - override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? { - if (withAnnotations) { - val name = Type.getType(desc).className - classAnnotations.add("@$name") + override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? = + visitAnnotationImpl { args -> + classAnnotations.add("@" + renderAnnotation(desc, args)) } - return super.visitAnnotation(desc, visible) + + private fun visitAnnotationImpl(end: (List) -> Unit): AnnotationVisitor? = + if (!withAnnotations) null else object : AnnotationVisitor(Opcodes.API_VERSION) { + private val arguments = mutableListOf() + + override fun visit(name: String?, value: Any) { + val rendered = when (value) { + is String -> "\"$value\"" + is Type -> "${value.className}::class" + is BooleanArray -> value.contentToString() + is CharArray -> value.contentToString() + is ByteArray -> value.contentToString() + is ShortArray -> value.contentToString() + is IntArray -> value.contentToString() + is FloatArray -> value.contentToString() + is LongArray -> value.contentToString() + is DoubleArray -> value.contentToString() + else -> value.toString() + } + arguments += + if (name != null) "$name=$rendered" else rendered + } + + override fun visitEnum(name: String?, descriptor: String, value: String) { + // Do not render enum class name to reduce verbosity. + arguments += + if (name != null) "$name=$value" else value + } + + override fun visitAnnotation(name: String?, descriptor: String): AnnotationVisitor? = + visitAnnotationImpl { args -> + val rendered = renderAnnotation(descriptor, args) + arguments += + if (name != null) "$name=$rendered" else rendered + } + + override fun visitArray(name: String): AnnotationVisitor? = + visitAnnotationImpl { args -> + arguments += "$name=[${args.joinToString(", ")}]" + } + + override fun visitEnd() { + end(arguments) + } + } + + private fun renderAnnotation(desc: String, args: List): String { + val name = Type.getType(desc).className + return if (args.isEmpty() || desc == "Lkotlin/Metadata;" || desc == "Lkotlin/coroutines/jvm/internal/DebugMetadata;") + name + else + "$name(${args.joinToString(", ")})" } override fun visit(version: Int, access: Int, name: String, signature: String?, superName: String?, interfaces: Array?) { @@ -277,7 +318,10 @@ class BytecodeListingTextCollectingVisitor( when { innerName == null -> { - KtAssert.assertNull("Anonymous classes should have neither innerName nor outerName. Name=$name, outerName=$outerName", outerName) + KtAssert.assertNull( + "Anonymous classes should have neither innerName nor outerName. Name=$name, outerName=$outerName", + outerName + ) declarationsInsideClass.add(Declaration("inner (anonymous) class $name")) } outerName == null -> {