Don't generate hash in sam wrapper class name
#KT-17091 Fixed
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: Foo.kt
|
||||
|
||||
class A2 {
|
||||
fun doWork(job: () -> Unit) {
|
||||
Runnable(job)
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: kt17091.kt
|
||||
|
||||
typealias Z = String
|
||||
|
||||
class A {
|
||||
fun doWork(job: () -> Unit) {
|
||||
java.lang.Runnable(job).run()
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result = "fail"
|
||||
A().doWork { result = "OK" }
|
||||
|
||||
if (java.lang.Class.forName("Kt17091Kt\$sam\$java_lang_Runnable$0") == null) return "fail: can't find sam wrapper"
|
||||
|
||||
if (java.lang.Class.forName("A2\$sam\$java_lang_Runnable$0") == null) return "fail 2: can't find sam wrapper"
|
||||
|
||||
return result
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: Foo.kt
|
||||
@file:JvmName("testXX")
|
||||
package test
|
||||
|
||||
class A2 {
|
||||
fun doWork(job: () -> Unit) {
|
||||
Runnable(job)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: kt17091_2.kt
|
||||
|
||||
@file:JvmMultifileClass
|
||||
@file:JvmName("testX")
|
||||
package test
|
||||
|
||||
typealias Z = String
|
||||
|
||||
class A {
|
||||
fun doWork(job: () -> Unit) {
|
||||
Runnable(job).run()
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result = "fail"
|
||||
A().doWork { result = "OK" }
|
||||
|
||||
if (java.lang.Class.forName("test.testX__Kt17091_2Kt\$sam\$java_lang_Runnable$0") == null) return "fail: can't find sam wrapper"
|
||||
|
||||
if (java.lang.Class.forName("test.A2\$sam\$java_lang_Runnable$0") == null) return "fail 2: can't find sam wrapper"
|
||||
|
||||
return result
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: Foo.kt
|
||||
@file:JvmMultifileClass
|
||||
@file:JvmName("testX")
|
||||
package test
|
||||
|
||||
class A2 {
|
||||
fun doWork(job: () -> Unit) {
|
||||
Runnable(job)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: kt17091_3.kt
|
||||
|
||||
fun box(): String {
|
||||
if (java.lang.Class.forName("Kt17091_3Kt\$sam\$java_util_concurrent_Callable$0") == null) return "fail: can't find sam wrapper"
|
||||
|
||||
if (java.lang.Class.forName("test.A2\$sam\$java_lang_Runnable$0") == null) return "fail 2: can't find sam wrapper"
|
||||
|
||||
return A().foo().call()
|
||||
}
|
||||
|
||||
class A {
|
||||
val f = {"OK"}
|
||||
fun foo() = java.util.concurrent.Callable(f)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// FILE: 1.kt
|
||||
// FULL_JDK
|
||||
|
||||
package test
|
||||
|
||||
inline fun foo(value: String, crossinline s: () -> String): String {
|
||||
val x = { value }
|
||||
return java.util.concurrent.Callable(x).call() + { s() }()
|
||||
}
|
||||
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
return foo("O") { "K" }
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
@kotlin.Metadata
|
||||
final class test/SamAdapterAndInlinedOneKt$sam$Runnable$HASH {
|
||||
public final class test/SamAdapterAndInlinedOneKt$sam$i$java_lang_Runnable$0 {
|
||||
private synthetic final field function: kotlin.jvm.functions.Function0
|
||||
method <init>(p0: kotlin.jvm.functions.Function0): void
|
||||
public method <init>(p0: kotlin.jvm.functions.Function0): void
|
||||
public synthetic final method run(): void
|
||||
}
|
||||
|
||||
@kotlin.Metadata
|
||||
public final class test/SamAdapterAndInlinedOneKt$sam$Runnable$i$HASH {
|
||||
final class test/SamAdapterAndInlinedOneKt$sam$java_lang_Runnable$0 {
|
||||
private synthetic final field function: kotlin.jvm.functions.Function0
|
||||
public method <init>(p0: kotlin.jvm.functions.Function0): void
|
||||
method <init>(p0: kotlin.jvm.functions.Function0): void
|
||||
public synthetic final method run(): void
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user