Fix extension receiver coercion for inline classes
#KT-27031
This commit is contained in:
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
fun <T> T.runExt(fn: T.() -> String) = fn()
|
||||
|
||||
inline class R(private val r: Int) {
|
||||
fun test() = runExt { "OK" }
|
||||
}
|
||||
|
||||
fun box() = R(0).test()
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
fun <T> T.runExt(fn: T.() -> String) = fn()
|
||||
|
||||
inline class R(private val r: String) {
|
||||
fun test() = runExt { r }
|
||||
}
|
||||
|
||||
fun box() = R("OK").test()
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
inline fun <T> T.runInlineExt(fn: T.() -> String) = fn()
|
||||
|
||||
inline class R(private val r: Int) {
|
||||
fun test() = runInlineExt { "OK" }
|
||||
}
|
||||
|
||||
fun box() = R(0).test()
|
||||
compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/inlineExtLambdaInInlineClassFun2.kt
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
inline fun <T> T.runInlineExt(fn: T.() -> String) = fn()
|
||||
|
||||
inline class R(private val r: String) {
|
||||
fun test() = runInlineExt { r }
|
||||
}
|
||||
|
||||
fun box() = R("OK").test()
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
inline fun runInline(fn: () -> String) = fn()
|
||||
|
||||
inline class R(private val r: Int) {
|
||||
fun test() = runInline { "OK" }
|
||||
}
|
||||
|
||||
fun box() = R(0).test()
|
||||
Reference in New Issue
Block a user