next steps for full closure support

This commit is contained in:
Araq 2012-06-18 02:03:08 +02:00
commit d5b01dfb7c
4 changed files with 153 additions and 134 deletions

View file

@ -1,20 +1,24 @@
discard """
output: '''56'''
output: '''56 66'''
"""
type
ITest = tuple[
setter: proc(v: int) {.closure.},
getter: proc(): int {.closure.}]
getter1: proc(): int {.closure.},
getter2: proc(): int {.closure.}]
proc getInterf(): ITest =
var shared: int
var shared, shared2: int
return (setter: proc (x: int) = shared = x,
getter: proc (): int = return shared)
return (setter: proc (x: int) =
shared = x
shared2 = x + 10,
getter1: proc (): int = result = shared,
getter2: proc (): int = return shared2)
var i = getInterf()
i.setter(56)
echo i.getter()
echo i.getter1(), " ", i.getter2()