Move tailrecPhase before defaultArgumentStubPhase
So that default values can be copied to the recursive call sites.
This commit is contained in:
committed by
max-kammerer
parent
6addb24e4b
commit
bdcd6f73b1
Vendored
+34
@@ -0,0 +1,34 @@
|
||||
// DONT_RUN_GENERATED_CODE: JS
|
||||
// IGNORE_BACKEND: JVM
|
||||
|
||||
var counter = 0
|
||||
fun inc() = counter++
|
||||
|
||||
tailrec fun test(x: Int = 0, y: Int = inc(), z: Int = inc()) {
|
||||
if (x * 2 != y || z - y != 1)
|
||||
throw IllegalArgumentException("x=$x y=$y z=$z")
|
||||
|
||||
if (x < 100000)
|
||||
test(x + 1)
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
test()
|
||||
|
||||
counter = 4
|
||||
test(x = 1, y = 2, z = 3)
|
||||
|
||||
counter = 0
|
||||
test(-1, -2, -1)
|
||||
|
||||
counter = 3
|
||||
test(1, 2)
|
||||
|
||||
counter = 1
|
||||
test(y = 0)
|
||||
|
||||
counter = 2
|
||||
test(x = 1)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user