IC: call JvmDefault method of inline class using boxed receiver
#KT-43698 Fixed
This commit is contained in:
Vendored
-3
@@ -1,7 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: javaDefaultMethod.kt
|
||||
inline class K(val k: String) : J {
|
||||
|
||||
-3
@@ -1,7 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: javaDefaultMethod.kt
|
||||
interface K2 : J {
|
||||
|
||||
-3
@@ -1,8 +1,5 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: jvmDefaultAll.kt
|
||||
|
||||
-3
@@ -1,8 +1,5 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: jvmDefaultAll.kt
|
||||
|
||||
Vendored
-3
@@ -1,8 +1,5 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: jvmDefaultAll.kt
|
||||
|
||||
Vendored
-3
@@ -1,8 +1,5 @@
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: jvmDefaultEnable.kt
|
||||
|
||||
-3
@@ -1,8 +1,5 @@
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: jvmDefaultEnable.kt
|
||||
|
||||
Vendored
-3
@@ -1,8 +1,5 @@
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_LIGHT_ANALYSIS
|
||||
// IGNORE_BACKEND: JVM
|
||||
// ^ KT-43698, fixed in JVM_IR
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: jvmDefaultEnable.kt
|
||||
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
class Cell<T>(val x: T)
|
||||
|
||||
interface IOk {
|
||||
fun ok(): String = "OK"
|
||||
}
|
||||
|
||||
inline class InlineClass(val s: String) : IOk
|
||||
|
||||
fun test(cell: Cell<InlineClass>): String = cell.x.ok()
|
||||
|
||||
fun box() = test(Cell(InlineClass("FAIL")))
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
interface IOk {
|
||||
fun ok(): String = "OK"
|
||||
}
|
||||
|
||||
inline class InlineClass(val s: String) : IOk
|
||||
|
||||
fun test(x: InlineClass?) = x?.ok() ?: "Failed"
|
||||
|
||||
fun box() = test(InlineClass(""))
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
interface IOk {
|
||||
fun ok(): String = "OK"
|
||||
}
|
||||
|
||||
inline class InlineClass(val s: String) : IOk
|
||||
|
||||
fun test(x: Any): String {
|
||||
return if (x is InlineClass) x.ok() else "FAIL"
|
||||
}
|
||||
|
||||
fun box() = test(InlineClass("Dummy"))
|
||||
Vendored
+28
@@ -0,0 +1,28 @@
|
||||
// !JVM_DEFAULT_MODE: all
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
import kotlin.coroutines.*
|
||||
|
||||
interface IOk {
|
||||
fun ok(): String = "OK"
|
||||
}
|
||||
|
||||
inline class InlineClass(val s: String) : IOk
|
||||
|
||||
suspend fun returnsUnboxed() = InlineClass("")
|
||||
|
||||
suspend fun test(): String = returnsUnboxed().ok()
|
||||
|
||||
fun builder(c: suspend () -> Unit) {
|
||||
c.startCoroutine(Continuation(EmptyCoroutineContext) {})
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var res = "FAIL"
|
||||
builder {
|
||||
res = test()
|
||||
}
|
||||
return res
|
||||
}
|
||||
Reference in New Issue
Block a user