summary refs log tree commit diff stats
path: root/tests/accept/compile/tvoid.nim
blob: b286010dcddc58fbf7fa5a5497369e26548f416f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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), 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()