diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 425405795f4..04943b62725 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -509,17 +509,16 @@ public class FunctionCodegen { @NotNull InnerClassConsumer innerClassConsumer, @NotNull GenerationState state ) { + if (isAccessor(functionDescriptor)) return; KotlinTypeMapper typeMapper = state.getTypeMapper(); Iterator iterator = valueParameters.iterator(); List kotlinParameterTypes = jvmSignature.getValueParameters(); - boolean isAccessor = isAccessor(functionDescriptor); for (int i = 0; i < kotlinParameterTypes.size(); i++) { JvmMethodParameterSignature parameterSignature = kotlinParameterTypes.get(i); JvmMethodParameterKind kind = parameterSignature.getKind(); if (kind.isSkippedInGenericSignature()) { - if (!isAccessor) - markEnumOrInnerConstructorParameterAsSynthetic(mv, i, state.getClassBuilderMode()); + markEnumOrInnerConstructorParameterAsSynthetic(mv, i, state.getClassBuilderMode()); continue; } diff --git a/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.kt b/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.kt new file mode 100644 index 00000000000..b266aca852c --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.kt @@ -0,0 +1,13 @@ +annotation class Ann + +class Foo private @Ann constructor(@Ann s: String) { + + @Ann + private fun foo(@Ann s: String) {} + + companion object { + fun foo() { + Foo("123").foo("456") + } + } +} \ No newline at end of file diff --git a/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.txt b/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.txt new file mode 100644 index 00000000000..fd71e0291f8 --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.txt @@ -0,0 +1,22 @@ +@java.lang.annotation.Retention +@kotlin.Metadata +public annotation class Ann + +@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 @Ann method (@Ann 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 @Ann method foo(@Ann p0: java.lang.String): void +} diff --git a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt index b8bdc9c8784..ed94d170fa1 100644 --- a/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt +++ b/compiler/testData/codegen/bytecodeListing/inlineClasses/annotationsOnHiddenConstructor.txt @@ -25,7 +25,7 @@ public abstract class Sealed { inner class Sealed$Derived inner class Sealed$Inner private @Ann method (@Ann p0: int): void - public synthetic method (@Ann p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void + public synthetic method (p0: int, p1: kotlin.jvm.internal.DefaultConstructorMarker): void public final method getZ(): int } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java index d13a7588ced..5178b0baa6f 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java @@ -210,6 +210,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest { runTest("compiler/testData/codegen/bytecodeListing/annotations/noAdditionalAnnotationsInAccessors.kt"); } + @TestMetadata("noAnnotationsInSyntheticAccessors.kt") + public void testNoAnnotationsInSyntheticAccessors() throws Exception { + runTest("compiler/testData/codegen/bytecodeListing/annotations/noAnnotationsInSyntheticAccessors.kt"); + } + @TestMetadata("onProperties.kt") public void testOnProperties() throws Exception { runTest("compiler/testData/codegen/bytecodeListing/annotations/onProperties.kt");