Do not always generate synthetic "$annotations" as private

Since annotations are a part of the declaration, they must have the same
visibility as the declaration in the bytecode. Otherwise obfuscators like
Proguard might strip the "$annotations" method and no annotations would be
found via Kotlin reflection

 #KT-15993 Fixed
This commit is contained in:
Alexander Udalov
2017-02-02 16:13:30 +03:00
parent 81e083a133
commit 0db60bf6cb
34 changed files with 166 additions and 60 deletions
@@ -23,10 +23,10 @@ public final static class Host/Companion {
public final method getYy(): int
public final method setY(p0: int): void
public final method setYy(p0: int): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method x$annotations(): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method xx$annotations(): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method y$annotations(): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method yy$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method x$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method xx$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method y$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method yy$annotations(): void
}
@kotlin.Metadata
@@ -10,10 +10,10 @@ public final class Host {
public final static method getYy(): int
public final static method setY(p0: int): void
public final static method setYy(p0: int): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method x$annotations(): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method xx$annotations(): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method y$annotations(): void
private synthetic deprecated static @kotlin.jvm.JvmStatic method yy$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method x$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method xx$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method y$annotations(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method yy$annotations(): void
}
@kotlin.Metadata