summary refs log blame commit diff stats
path: root/tests/compile/tvoid.nim
blob: bb569e7f878d13bde2eb926dd04178d864c27cb4 (plain) (tree)
1
2
3
4
5
6
7
8
           
                                           

   
                          


                              




                                
                                                    













                          

               

                           
 
discard """
  output: "he, no return type;abc a string"
"""

proc ReturnT[T](x: T): T =
  when T is void:
    echo "he, no return type;"
  else:
    result = x & " a string"

proc nothing(x, y: void): void =
  echo "ha"

proc callProc[T](p: proc (x: T) {.nimcall.}, x: T) =
  when T is void: 
    p()
  else:
    p(x)

proc intProc(x: int) =
  echo x
  
proc emptyProc() =
  echo "empty"

callProc[int](intProc, 12)
callProc[void](emptyProc)


ReturnT[void]()
echo ReturnT[string]("abc")
nothing()