Implement inlining of default parameters in JS BE
Fix KT-17910
This commit is contained in:
Vendored
+1
@@ -9,6 +9,7 @@ inline fun inlineFun(crossinline inlineLambda: () -> String = { "OK" }, noinline
|
||||
|
||||
// FILE: 2.kt
|
||||
//NO_CHECK_LAMBDA_INLINING
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f_0 scope=box
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
|
||||
+1
@@ -14,6 +14,7 @@ class A(val value: String) {
|
||||
|
||||
import test.*
|
||||
|
||||
// CHECK_CONTAINS_NO_CALLS: box
|
||||
fun box(): String {
|
||||
return A("OK").inlineFun()
|
||||
}
|
||||
Vendored
+1
@@ -1,6 +1,7 @@
|
||||
// FILE: 1.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
// SKIP_INLINE_CHECK_IN: inlineFun$default
|
||||
// CHECK_CONTAINS_NO_CALLS: test
|
||||
package test
|
||||
|
||||
//problem in test framework
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
// FILE: 1.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
// SKIP_INLINE_CHECK_IN: inlineFun$default
|
||||
// IGNORE_BACKEND: JS
|
||||
//WITH_RUNTIME
|
||||
package test
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ fun call(lambda: () -> String ) = lambda()
|
||||
|
||||
// FILE: 2.kt
|
||||
//NO_CHECK_LAMBDA_INLINING
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=box
|
||||
// CHECK_CALLED_IN_SCOPE: function=call_h4ejuu$ scope=box
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
|
||||
Vendored
+1
@@ -9,6 +9,7 @@ inline fun inlineFun(crossinline inlineLambda: () -> String, noinline noInlineLa
|
||||
|
||||
// FILE: 2.kt
|
||||
//NO_CHECK_LAMBDA_INLINING
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=inlineFun
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
|
||||
+2
@@ -10,6 +10,8 @@ inline fun String.inlineFun(crossinline lambda: () -> String = { this }): String
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=box
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f_0 scope=box
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
+2
-1
@@ -10,7 +10,8 @@ inline fun String.inlineFun(crossinline lambda: () -> String, crossinline dlambd
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f_0 scope=test
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=test
|
||||
import test.*
|
||||
|
||||
fun String.test(): String = "INLINE".inlineFun({ this })
|
||||
|
||||
+2
@@ -14,6 +14,8 @@ class A(val value: String) {
|
||||
|
||||
// FILE: 2.kt
|
||||
//WITH_RUNTIME
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=box
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f_0 scope=box
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
|
||||
+2
@@ -14,6 +14,8 @@ class A(val value: String) {
|
||||
|
||||
// FILE: 2.kt
|
||||
//WIH_RUNTIME
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=test
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f_0 scope=test
|
||||
import test.*
|
||||
|
||||
fun String.test(): String = with(A("VALUE")) { "INLINE".inlineFun({ this@test }) }
|
||||
|
||||
@@ -8,6 +8,7 @@ inline fun inlineFun(capturedParam: String, lambda: () -> String = { capturedPar
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CONTAINS_NO_CALLS: box
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
+1
@@ -8,6 +8,7 @@ inline fun inlineFun(capturedParam: String, lambda: () -> Any = { capturedParam
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CONTAINS_NO_CALLS: box except=throwCCE;isType
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
Vendored
+1
@@ -8,6 +8,7 @@ inline fun inlineFun(lambda: () -> Any = { "OK" as Any }): Any {
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CONTAINS_NO_CALLS: box except=throwCCE;isType
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
+1
@@ -8,6 +8,7 @@ inline fun inlineFun(param: String, lambda: String.() -> String = { this }): Str
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CONTAINS_NO_CALLS: box
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
+1
@@ -12,6 +12,7 @@ inline fun <T : A> inlineFun(capturedParam: T, lambda: () -> T = { capturedParam
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CONTAINS_NO_CALLS: box
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
+1
@@ -8,6 +8,7 @@ inline fun inlineFun(lambda: () -> String = { "OK" }): String {
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CONTAINS_NO_CALLS: box
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ inline fun String.inlineFun(crossinline lambda: () -> String = { { this }() }):
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=box
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f_0 scope=box
|
||||
|
||||
import test.*
|
||||
|
||||
|
||||
+2
@@ -15,6 +15,8 @@ class A(val value: String) {
|
||||
|
||||
// FILE: 2.kt
|
||||
//WITH_RUNTIME
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f scope=box
|
||||
// CHECK_CALLED_IN_SCOPE: function=inlineFun$f_0 scope=box
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
|
||||
Reference in New Issue
Block a user