summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-12-19 13:44:43 +0100
committerAraq <rumpf_a@web.de>2014-12-19 13:44:43 +0100
commitd4230e052d1229ba8128e3630a84f7decfd09d75 (patch)
treef35ea41db0ebedf76f185ee8b6a603785944ea4d /lib
parent18cbd516007aac73cf6a3384b09b2b020a86cba6 (diff)
downloadNim-d4230e052d1229ba8128e3630a84f7decfd09d75.tar.gz
allow () in more contexts
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/future.nim10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/pure/future.nim b/lib/pure/future.nim
index 34b76e41d..a0c1b5c2d 100644
--- a/lib/pure/future.nim
+++ b/lib/pure/future.nim
@@ -77,7 +77,17 @@ macro `=>`*(p, b: expr): expr {.immediate.} =
         identDefs.add(c)
         identDefs.add(newEmptyNode())
         identDefs.add(newEmptyNode())
+      of nnkInfix:
+        if c[0].kind == nnkIdent and c[0].ident == !"->":
+          var procTy = createProcType(c[1], c[2])
+          params[0] = procTy[0][0]
+          for i in 1 .. <procTy[0].len:
+            params.add(procTy[0][i])
+        else:
+          error("Expected proc type (->) got (" & $c[0].ident & ").")
+        break
       else:
+        echo treeRepr c
         error("Incorrect procedure parameter list.")
       params.add(identDefs)
   of nnkIdent: