2015-06-27 18:06:02 -04:00
|
|
|
import io:*
|
2015-06-28 14:27:48 -04:00
|
|
|
import set
|
|
|
|
|
import mem
|
2015-06-27 18:06:02 -04:00
|
|
|
|
|
|
|
|
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); } )
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-28 14:27:48 -04:00
|
|
|
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); } )
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2015-06-27 18:06:02 -04:00
|
|
|
fun main():int {
|
|
|
|
|
var it: ToClose
|
|
|
|
|
it.testMethod()
|
|
|
|
|
it.testVariable()
|
2015-06-28 14:27:48 -04:00
|
|
|
//var a = 7
|
|
|
|
|
//mem::safe_recursive_delete(&a, fun(it: int*): set::set<int*> { return set::set(it); } )
|
2015-06-27 18:06:02 -04:00
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|