JVM: Only produce inline SAM wrappers in public inline scope

This commit is contained in:
Steven Schäfer
2021-01-26 18:20:44 +01:00
committed by Alexander Udalov
parent 50bbf4f269
commit c9b0cc5b32
16 changed files with 204 additions and 11 deletions
@@ -16,4 +16,5 @@ fun box(): String {
return result
}
// 1 INVOKESPECIAL TestKt\$sam\$i\$java_lang_Runnable\$0.<init> \(Lkotlin/jvm/functions/Function0;\)V
// 1 INVOKESPECIAL TestKt\$sam\$java_lang_Runnable\$0.<init> \(Lkotlin/jvm/functions/Function0;\)V
// 0 INVOKESPECIAL TestKt\$sam\$i\$java_lang_Runnable\$0.<init> \(Lkotlin/jvm/functions/Function0;\)V
@@ -0,0 +1,20 @@
// SAM_CONVERSIONS: CLASS
// FILE: J.java
public class J {
public static void g(Runnable r) {
r.run();
}
}
// FILE: test.kt
inline fun box(): String {
var result = "Fail"
val setter = { result = "OK" }
1.apply { J.g(setter) }
return result
}
// 0 INVOKESPECIAL TestKt\$sam\$java_lang_Runnable\$0.<init> \(Lkotlin/jvm/functions/Function0;\)V
// 1 INVOKESPECIAL TestKt\$sam\$i\$java_lang_Runnable\$0.<init> \(Lkotlin/jvm/functions/Function0;\)V