diff --git a/compiler/testData/codegen/bytecodeListing/annotations/JvmSynthetic.txt b/compiler/testData/codegen/bytecodeListing/annotations/JvmSynthetic.txt index 48c13a2eb74..e53ae920b84 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/JvmSynthetic.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/JvmSynthetic.txt @@ -1,14 +1,14 @@ @kotlin.jvm.internal.KotlinClass Example { - private synthetic @org.jetbrains.annotations.NotNull field prop: java.lang.String private field prop2: int - private synthetic field useSite: int + private synthetic final @org.jetbrains.annotations.NotNull field prop: java.lang.String private field useSite2: int - public @org.jetbrains.annotations.NotNull method getProp(): java.lang.String - public synthetic method getProp2(): int - public synthetic method setProp2(p0: int): void - public method getUseSite(): int - public method getUseSite2(): int - public method setUseSite2(p0: int): void - public synthetic method job(): void + private synthetic final field useSite: int public method (): void -} \ No newline at end of file + public final @org.jetbrains.annotations.NotNull method getProp(): java.lang.String + public synthetic final method getProp2(): int + public final method getUseSite(): int + public final method getUseSite2(): int + public synthetic final method job(): void + public synthetic final method setProp2(p0: int): void + public final method setUseSite2(p0: int): void +} diff --git a/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt b/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt index 771cd11d7e5..8208f0153da 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/defaultTargets.txt @@ -1,11 +1,11 @@ @kotlin.jvm.internal.KotlinClass A { - private @AnnField @AnnParameterField @AnnTypeField field a: int - private @AnnField @AnnTypeField field x: int - private synthetic deprecated @AnnProperty @AnnFieldProperty @AnnParameterProperty method a$annotations(): void - public method getA(): int - private synthetic deprecated @AnnProperty @AnnFieldProperty method x$annotations(): void - public method getX(): int + private final @AnnField @AnnParameterField @AnnTypeField field a: int + private final @AnnField @AnnTypeField field x: int public method (@AnnParameterProperty @AnnParameterField p0: int): void + private synthetic deprecated final @AnnProperty @AnnFieldProperty @AnnParameterProperty method a$annotations(): void + public final method getA(): int + public final method getX(): int + private synthetic deprecated final @AnnProperty @AnnFieldProperty method x$annotations(): void } @kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnField diff --git a/compiler/testData/codegen/bytecodeListing/annotations/literals.txt b/compiler/testData/codegen/bytecodeListing/annotations/literals.txt index 2113b4201fc..547903da4b1 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/literals.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/literals.txt @@ -5,19 +5,19 @@ @kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass FunAnn @kotlin.jvm.internal.KotlinSyntheticClass @kotlin.jvm.internal.KotlinFunction LiteralsKt$foo$1 { + synthetic final field $arg: int inner class LiteralsKt$foo$1 - synthetic field $arg: int - public method invoke(): java.lang.Object - public @FunAnn method invoke(): int method (p0: int): void + public final @FunAnn method invoke(): int + public method invoke(): java.lang.Object } @kotlin.jvm.internal.KotlinSyntheticClass @kotlin.jvm.internal.KotlinFunction LiteralsKt$foo$2 { + synthetic final field $arg: int inner class LiteralsKt$foo$2 - synthetic field $arg: int - public method invoke(): java.lang.Object - public method invoke(): int method (p0: int): void + public final method invoke(): int + public method invoke(): java.lang.Object } @kotlin.jvm.internal.KotlinLocalClass @kotlin.jvm.internal.KotlinClass LiteralsKt$foo$3 { @@ -26,20 +26,20 @@ } @kotlin.jvm.internal.KotlinSyntheticClass @kotlin.jvm.internal.KotlinFunction LiteralsKt$foo$x$1 { + synthetic final field $arg: int inner class LiteralsKt$foo$x$1 - synthetic field $arg: int - public method invoke(): java.lang.Object - public @FunAnn method invoke(): int method (p0: int): void + public final @FunAnn method invoke(): int + public method invoke(): java.lang.Object } @kotlin.jvm.internal.KotlinFileFacade LiteralsKt { inner class LiteralsKt$foo$1 inner class LiteralsKt$foo$2 - inner class LiteralsKt$foo$x$1 inner class LiteralsKt$foo$3 - public method bar(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): int - public @org.jetbrains.annotations.NotNull method foo(p0: int): My + inner class LiteralsKt$foo$x$1 + public final method bar(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): int + public final @org.jetbrains.annotations.NotNull method foo(p0: int): My } @kotlin.jvm.internal.KotlinClass My { @@ -47,7 +47,7 @@ } @java.lang.Deprecated @kotlin.jvm.internal.KotlinPackage _DefaultPackage { - public synthetic field $moduleName: java.lang.String - public @kotlin.jvm.internal.KotlinDelegatedMethod method bar(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): int - public @kotlin.jvm.internal.KotlinDelegatedMethod @org.jetbrains.annotations.NotNull method foo(p0: int): My + public synthetic final field $moduleName: java.lang.String + public final @kotlin.jvm.internal.KotlinDelegatedMethod method bar(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): int + public final @kotlin.jvm.internal.KotlinDelegatedMethod @org.jetbrains.annotations.NotNull method foo(p0: int): My } diff --git a/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt b/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt index f22f2292b38..1ef1add78f7 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/onProperties.txt @@ -1,15 +1,15 @@ @kotlin.jvm.internal.KotlinClass A { private @AnnField field p: int - private @AnnField field x: int + private final @AnnField field x: int private field y: int - private synthetic deprecated @AnnProp @AnnProp2 method p$annotations(): void - public @AnnGetter method getP(): int - public @AnnSetter method setP(@AnnParam p0: int): void - private synthetic deprecated @AnnProp2 method x$annotations(): void - public method getX(): int - public @AnnGetter method getY(): int - public @AnnSetter method setY(p0: int): void public method (@AnnParam p0: int, @AnnParam p1: int): void + public final @AnnGetter method getP(): int + public final method getX(): int + public final @AnnGetter method getY(): int + private synthetic deprecated final @AnnProp @AnnProp2 method p$annotations(): void + public final @AnnSetter method setP(@AnnParam p0: int): void + public final @AnnSetter method setY(p0: int): void + private synthetic deprecated final @AnnProp2 method x$annotations(): void } @java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass AnnField diff --git a/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt b/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt index b369d480769..73b1403ba5c 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt +++ b/compiler/testData/codegen/bytecodeListing/annotations/onReceiver.txt @@ -1,18 +1,18 @@ @kotlin.jvm.internal.KotlinClass A { - public @org.jetbrains.annotations.NotNull method f(@Ann p0: java.lang.String): java.lang.String - public @org.jetbrains.annotations.NotNull method getP(@Ann p0: java.lang.String): java.lang.String public method (): void + public final @org.jetbrains.annotations.NotNull method f(@Ann p0: java.lang.String): java.lang.String + public final @org.jetbrains.annotations.NotNull method getP(@Ann p0: java.lang.String): java.lang.String } @java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass Ann @kotlin.jvm.internal.KotlinFileFacade OnReceiverKt { - public @org.jetbrains.annotations.NotNull method topLevelF(@Ann p0: java.lang.String): java.lang.String - public @org.jetbrains.annotations.NotNull method getTopLevelP(@Ann p0: java.lang.String): java.lang.String + public final @org.jetbrains.annotations.NotNull method getTopLevelP(@Ann p0: java.lang.String): java.lang.String + public final @org.jetbrains.annotations.NotNull method topLevelF(@Ann p0: java.lang.String): java.lang.String } @java.lang.Deprecated @kotlin.jvm.internal.KotlinPackage _DefaultPackage { - public synthetic field $moduleName: java.lang.String - public @kotlin.jvm.internal.KotlinDelegatedMethod @org.jetbrains.annotations.NotNull method getTopLevelP(@Ann p0: java.lang.String): java.lang.String - public @kotlin.jvm.internal.KotlinDelegatedMethod @org.jetbrains.annotations.NotNull method topLevelF(@Ann p0: java.lang.String): java.lang.String + public synthetic final field $moduleName: java.lang.String + public final @kotlin.jvm.internal.KotlinDelegatedMethod @org.jetbrains.annotations.NotNull method getTopLevelP(@Ann p0: java.lang.String): java.lang.String + public final @kotlin.jvm.internal.KotlinDelegatedMethod @org.jetbrains.annotations.NotNull method topLevelF(@Ann p0: java.lang.String): java.lang.String } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt b/compiler/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt index 9fa5183ed94..4a193953b9b 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt @@ -64,6 +64,8 @@ public abstract class AbstractBytecodeListingTest : CodegenTestCase() { if ((access and Opcodes.ACC_SYNTHETIC) != 0) addModifier("synthetic", list) if ((access and Opcodes.ACC_DEPRECATED) != 0) addModifier("deprecated", list) + if ((access and Opcodes.ACC_FINAL) != 0) addModifier("final", list) + if ((access and Opcodes.ACC_ABSTRACT) != 0) addModifier("abstract", list) } public val text: String @@ -72,7 +74,7 @@ public abstract class AbstractBytecodeListingTest : CodegenTestCase() { append(className) if (declarationsInsideClass.isNotEmpty()) { append(" {\n") - for (declaration in declarationsInsideClass) { + for (declaration in declarationsInsideClass.sortedBy { it.text }) { append(" ").append(declaration.annotations.joinToString("")).append(declaration.text).append("\n") } append("}")