Refactoring and fixes

This commit is contained in:
Roman Artemev
2018-04-18 22:48:27 +03:00
parent deab0a017b
commit 997328f584
10 changed files with 83 additions and 126 deletions
@@ -2,54 +2,13 @@
// EXPECTED_REACHABLE_NODES: 1113
package foo
class closureBox<T>(var v: T)
//fun run(r: () -> Any) = r()
fun <T1, T2, T3> wrapper(t1:T1, t2:T2, i1:Int, block: (t1:T1, t2:T2, i1:Int) -> T3): T3 {
val f = { tt1:T1, tt2:T2, ii:Int -> block(tt1, tt2, ii) }
return f(t1, t2, i1)
}
fun test(ii: Int, jj: Int, kk: Int): String {
var i = ii
var j = jj
val k = kk
var ggg: Int
fun test(): String {
fun f(): String = "OK"
// fun f() {}
val funVal = {
k
}
// run(funVal)
val funLit = { x:Int, l:Int, a:Int, b:Int, c:Int, d:Int, g:Int -> i += 1
j += k
ggg = 333 + x
f() }
val ret = funLit(50, 77, 1, 2, 3, 4, 5)
// funLit(50, 77L)
if (i != 1 || j != 6 || k != 4) return "fail"
return ret
// return "OK"
val funLit = { f() }
return funLit()
}
//fun test(aa:Int, bb:Int, cc:Int) : Int {
// val c = cc
// var d = 0
// val f = { a:Int,b:Int -> d = a*b+c}
// f(aa, bb)
// return d
//}
fun box(): String {
// val i_box = closureBox<Int>(99)
return test(1, 2, 3).toString()
return test()
}