diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java index 0e716e8a7fa..8664ddedc75 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java @@ -181,7 +181,9 @@ public abstract class AnnotationCodegen { } private static boolean isInvisibleFromTheOutside(@Nullable DeclarationDescriptor descriptor) { - if (descriptor instanceof CallableMemberDescriptor && KotlinTypeMapper.isAccessor((CallableMemberDescriptor) descriptor)) return false; + if (descriptor instanceof CallableMemberDescriptor && KotlinTypeMapper.isAccessor((CallableMemberDescriptor) descriptor)) { + return true; + } if (descriptor instanceof MemberDescriptor) { return AsmUtil.getVisibilityAccessFlag((MemberDescriptor) descriptor) == Opcodes.ACC_PRIVATE; } diff --git a/compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.kt b/compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.kt new file mode 100644 index 00000000000..deb6346204a --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.kt @@ -0,0 +1,10 @@ +class Foo private constructor(s: String) { + + private fun foo(s: String) {} + + companion object { + fun foo() { + Foo("123").foo("456") + } + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.txt b/compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.txt new file mode 100644 index 00000000000..7588069d7e9 --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.txt @@ -0,0 +1,18 @@ +@kotlin.Metadata +public final class Foo$Companion { + inner class Foo$Companion + private method (): void + public synthetic method (p0: kotlin.jvm.internal.DefaultConstructorMarker): void + public final method foo(): void +} + +@kotlin.Metadata +public final class Foo { + public final static field Companion: Foo$Companion + inner class Foo$Companion + static method (): void + private method (p0: java.lang.String): void + public synthetic method (p0: java.lang.String, p1: kotlin.jvm.internal.DefaultConstructorMarker): void + public synthetic final static method access$foo(p0: Foo, p1: java.lang.String): void + private final method foo(p0: java.lang.String): void +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java index 5a7adf7087b..d13a7588ced 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java @@ -205,6 +205,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest { runTest("compiler/testData/codegen/bytecodeListing/annotations/literals.kt"); } + @TestMetadata("noAdditionalAnnotationsInAccessors.kt") + public void testNoAdditionalAnnotationsInAccessors() throws Exception { + runTest("compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.kt"); + } + @TestMetadata("onProperties.kt") public void testOnProperties() throws Exception { runTest("compiler/testData/codegen/bytecodeListing/annotations/onProperties.kt");