Forward compatibility hacks for Result.{success, failure}

Don't mangled functions annotated with @JvmName.
Annotate 'Result.success' and 'Result.failure' with @JvmName and
@Suppress("INAPPLICABLE_JVM_NAME").
NB this would require bootstrap.
This commit is contained in:
Dmitry Petrov
2020-06-03 15:55:40 +03:00
parent 8a4521864e
commit 202bbdf8dd
23 changed files with 184 additions and 11 deletions

View File

@@ -0,0 +1,21 @@
// WITH_RUNTIME
inline class IC(val x: Int)
class C {
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("test")
fun test() = IC(42)
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("differentName")
fun test2() = IC(42)
}
fun call1() = C().test()
fun call2() = C().test2()
// 1 public final test\(\)I
// 1 INVOKEVIRTUAL C.test \(\)I
// 1 public final differentName\(\)I
// 1 INVOKEVIRTUAL C.differentName \(\)I