Don't generate additional annotations on synthetic accessors
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
class Foo private constructor(s: String) {
|
||||
|
||||
private fun foo(s: String) {}
|
||||
|
||||
companion object {
|
||||
fun foo() {
|
||||
Foo("123").foo("456")
|
||||
}
|
||||
}
|
||||
}
|
||||
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
@kotlin.Metadata
|
||||
public final class Foo$Companion {
|
||||
inner class Foo$Companion
|
||||
private method <init>(): void
|
||||
public synthetic method <init>(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 <clinit>(): void
|
||||
private method <init>(p0: java.lang.String): void
|
||||
public synthetic method <init>(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
|
||||
}
|
||||
+5
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user