Restore accidentally removed parameter index passing to call generator
Parameter index was removed in
7690a8bc3e commit:
"Get rid of redundant 'afterParameterPut' method from call generators"
#KT-17653 Fixed
This commit is contained in:
+54
@@ -0,0 +1,54 @@
|
||||
// NO_CHECK_LAMBDA_INLINING
|
||||
// FILE: 1.kt
|
||||
// WITH_RUNTIME
|
||||
package test
|
||||
|
||||
open class A(val value: String)
|
||||
|
||||
var invokeOrder = ""
|
||||
|
||||
inline fun inlineFun(
|
||||
receiver: String = { invokeOrder += " default receiver"; "DEFAULT" }(),
|
||||
init: String,
|
||||
vararg constraints: A
|
||||
): String {
|
||||
return constraints.map { it.value }.joinToString() + ", " + receiver + ", " + init
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
import test.*
|
||||
|
||||
|
||||
var result = ""
|
||||
fun box(): String {
|
||||
|
||||
result = ""
|
||||
invokeOrder = ""
|
||||
result = inlineFun(constraints = { invokeOrder += "constraints";A("C") }(),
|
||||
receiver = { invokeOrder += " receiver"; "R" }(),
|
||||
init = { invokeOrder += " init"; "I" }())
|
||||
if (result != "C, R, I") return "fail 1: $result"
|
||||
|
||||
//Change test after KT-17691 FIX
|
||||
if (invokeOrder != " receiver initconstraints") return "fail 2: $invokeOrder"
|
||||
|
||||
result = ""
|
||||
invokeOrder = ""
|
||||
result = inlineFun(init = { invokeOrder += "init"; "I" }(),
|
||||
constraints = { invokeOrder += "constraints";A("C") }(),
|
||||
receiver = { invokeOrder += " receiver"; "R" }()
|
||||
)
|
||||
if (result != "C, R, I") return "fail 3: $result"
|
||||
//Change test after KT-17691 FIX
|
||||
if (invokeOrder != "init receiverconstraints") return "fail 4: $invokeOrder"
|
||||
|
||||
result = ""
|
||||
invokeOrder = ""
|
||||
result = inlineFun(init = { invokeOrder += "init"; "I" }(),
|
||||
constraints = { invokeOrder += " constraints";A("C") }())
|
||||
if (result != "C, DEFAULT, I") return "fail 5: $result"
|
||||
if (invokeOrder != "init constraints default receiver") return "fail 6: $invokeOrder"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
// NO_CHECK_LAMBDA_INLINING
|
||||
// FILE: 1.kt
|
||||
// WITH_RUNTIME
|
||||
package test
|
||||
|
||||
open class A(val value: String)
|
||||
|
||||
var invokeOrder = ""
|
||||
|
||||
inline fun inlineFun(
|
||||
vararg constraints: A,
|
||||
receiver: String = { invokeOrder += " default receiver"; "DEFAULT" }(),
|
||||
init: String
|
||||
): String {
|
||||
return constraints.map { it.value }.joinToString() + ", " + receiver + ", " + init
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
import test.*
|
||||
|
||||
|
||||
var result = ""
|
||||
fun box(): String {
|
||||
|
||||
result = ""
|
||||
invokeOrder = ""
|
||||
result = inlineFun(constraints = { invokeOrder += "constraints";A("C") }(),
|
||||
receiver = { invokeOrder += " receiver"; "R" }(),
|
||||
init = { invokeOrder += " init"; "I" }())
|
||||
if (result != "C, R, I") return "fail 1: $result"
|
||||
|
||||
//Change test after KT-17691 FIX
|
||||
if (invokeOrder != " receiver initconstraints") return "fail 2: $invokeOrder"
|
||||
|
||||
result = ""
|
||||
invokeOrder = ""
|
||||
result = inlineFun(init = { invokeOrder += "init"; "I" }(),
|
||||
constraints = { invokeOrder += "constraints";A("C") }(),
|
||||
receiver = { invokeOrder += " receiver"; "R" }()
|
||||
)
|
||||
if (result != "C, R, I") return "fail 3: $result"
|
||||
//Change test after KT-17691 FIX
|
||||
if (invokeOrder != "init receiverconstraints") return "fail 4: $invokeOrder"
|
||||
|
||||
result = ""
|
||||
invokeOrder = ""
|
||||
result = inlineFun(init = { invokeOrder += "init"; "I" }(),
|
||||
constraints = { invokeOrder += " constraints";A("C") }())
|
||||
if (result != "C, DEFAULT, I") return "fail 5: $result"
|
||||
if (invokeOrder != "init constraints default receiver") return "fail 6: $invokeOrder"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user