summary refs log blame commit diff stats
path: root/tests/closure/tinterf.nim
blob: 726fac9f670638b967bf8ae825839b0208cf0941 (plain) (tree)
1
2
3
4
5
6
7
8
9
           
                     




                                     

                                     

                         
                           
  
                                  
                       
                             
                                                   
                                                 



                   
                                  
 
discard """
  output: '''56 66'''
"""

type
  ITest = tuple[
    setter: proc(v: int) {.closure.},
    getter1: proc(): int {.closure.},
    getter2: proc(): int {.closure.}]

proc getInterf(): ITest =
  var shared1, shared2: int
  
  return (setter: proc (x: int) = 
            shared1 = x
            shared2 = x + 10,
          getter1: proc (): int = result = shared1,
          getter2: proc (): int = return shared2)

var i = getInterf()
i.setter(56)

echo i.getter1(), " ", i.getter2()