Treat extension receiver as noinline parameter
#KT-9574 Fixed
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
//NO_CHECK_LAMBDA_INLINING
|
||||
|
||||
fun box(): String {
|
||||
val res = { "OK" }.test()()
|
||||
if (res != "OKOKOK") return "fail 1: $res"
|
||||
|
||||
val res2 = { "OK" }.extensionNoInline().subSequence(0, 2)
|
||||
if (res2 != "OK") return "fail 2: $res2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
inline fun (() -> String).test(): (() -> String) = { invoke() + this.invoke() + this() }
|
||||
|
||||
// call this.hashCode() guarantees that extension receiver is noinline by default
|
||||
inline fun (() -> String).extensionNoInline(): String = this() + (this.hashCode().toString())
|
||||
Reference in New Issue
Block a user