diff --git a/src/apatheia/macroutils.nim b/src/apatheia/macroutils.nim index f8e40e6..16b5997 100644 --- a/src/apatheia/macroutils.nim +++ b/src/apatheia/macroutils.nim @@ -131,9 +131,10 @@ proc mkCall*(callName, params: NimNode): NimNode = # echo "mkCall return:\n", treeRepr result proc mkProc*(name, params, body: NimNode): NimNode = - let params = params.copyNimTree() + let args = params.copyNimTree() result = quote do: proc `name`() {.nimcall.} = `body` - for param in params: - result[3].add param + result[3].del(0) + for arg in args: + result[3].add arg diff --git a/src/apatheia/tasks.nim b/src/apatheia/tasks.nim index 5b267a3..cce1264 100644 --- a/src/apatheia/tasks.nim +++ b/src/apatheia/tasks.nim @@ -32,12 +32,15 @@ macro asyncTask*(p: untyped): untyped = echo "param: ", paramId, " tp: ", paramType.treeRepr checks.add newCall("checkParamType", paramId) + echo "asyncTask:body:\n", body.repr + let taskProc = mkProc(procId, params, body) echo "asyncTask:checks:\n", checks.repr - echo "asyncTask:mkProc:\n", repr mkProc(ident "tester", params, body) - result = p + result = newStmtList() + result.add taskProc echo "asyncTask:body:\n", result.repr - + echo "asyncTask:body:\n", result.treeRepr + echo "asyncTask:orig:\n", p.treeRepr type HashOptions* = object @@ -55,7 +58,6 @@ proc doHashesRes*(data: openArray[byte], result = 10 - when false: proc doHashesTask*(args: seq[Data]) = discard