Files
kraken/tests/test_close_over_members.krak
2015-07-05 02:34:45 -04:00

56 lines
839 B
Plaintext

import io:*
import set
import mem
fun runFunc(func: fun():void) {
func()
}
obj ToClose {
var data: int
fun print4() {
println(4)
}
fun testMethod() {
runFunc(fun() { print4(); } )
}
fun testVariable() {
data = 7
runFunc(fun() { println(data); } )
}
}
obj One (Object) {
fun construct(): *One {
return this
}
fun destruct() {
var a:One
mem::safe_recursive_delete(&a, fun(it: *One): set::set<*One> { return set::set(it); } )
}
}
fun main():int {
var it: ToClose
it.testMethod()
it.testVariable()
var a = 129
var b = 222
fun() {
fun() {
println(a)
}()
}()
var c = fun() {
println(b)
fun() {
println(a)
}()
}
c()
return 0
}