[JVM_IR] Follow old backend in bridge visibility and varargs marking.

The old backend makes bridges for protected and package-private
methods public. Also, for bridges for vararg methods, the vararg
marker is not on the bridge.

These differences seem minor but are visible via reflection, so
we might as well follow the old backend.
This commit is contained in:
Mads Ager
2020-10-30 14:51:10 +01:00
committed by Alexander Udalov
parent 326768e8b5
commit 0279068214
7 changed files with 39 additions and 56 deletions
@@ -0,0 +1,8 @@
abstract class A<T> {
protected abstract fun doIt(vararg args: T): String
fun test() = doIt()
}
class B : A<Void>() {
override fun doIt(vararg args: Void): String = "OK"
}
@@ -0,0 +1,15 @@
@kotlin.Metadata
public abstract class A {
// source: 'varargsBridge.kt'
public method <init>(): void
protected varargs abstract @org.jetbrains.annotations.NotNull method doIt(@org.jetbrains.annotations.NotNull p0: java.lang.Object[]): java.lang.String
public final @org.jetbrains.annotations.NotNull method test(): java.lang.String
}
@kotlin.Metadata
public final class B {
// source: 'varargsBridge.kt'
public method <init>(): void
protected varargs @org.jetbrains.annotations.NotNull method doIt(@org.jetbrains.annotations.NotNull p0: java.lang.Void[]): java.lang.String
public synthetic bridge method doIt(p0: java.lang.Object[]): java.lang.String
}