Param name and type combos now work in type sig. sugar.
This commit is contained in:
parent
57cc8237f7
commit
dad99376a5
2 changed files with 13 additions and 6 deletions
|
|
@ -26,8 +26,15 @@ proc createProcType(p, b: PNimrodNode): PNimrodNode {.compileTime.} =
|
||||||
for i in 0 .. <p.len:
|
for i in 0 .. <p.len:
|
||||||
let ident = p[i]
|
let ident = p[i]
|
||||||
var identDefs = newNimNode(nnkIdentDefs)
|
var identDefs = newNimNode(nnkIdentDefs)
|
||||||
|
case ident.kind
|
||||||
|
of nnkExprColonExpr:
|
||||||
|
identDefs.add ident[0]
|
||||||
|
identDefs.add ident[1]
|
||||||
|
of nnkIdent:
|
||||||
identDefs.add newIdentNode("i" & $i)
|
identDefs.add newIdentNode("i" & $i)
|
||||||
identDefs.add(ident)
|
identDefs.add(ident)
|
||||||
|
else:
|
||||||
|
error("Incorrect type list in proc type declaration.")
|
||||||
identDefs.add newEmptyNode()
|
identDefs.add newEmptyNode()
|
||||||
formalParams.add identDefs
|
formalParams.add identDefs
|
||||||
of nnkIdent:
|
of nnkIdent:
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ discard """
|
||||||
3
|
3
|
||||||
3
|
3
|
||||||
noReturn
|
noReturn
|
||||||
|
6
|
||||||
'''
|
'''
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -36,8 +37,7 @@ echo doWithOneAndTwo((x, y) => x + y)
|
||||||
|
|
||||||
noReturn(() -> void => echo("noReturn"))
|
noReturn(() -> void => echo("noReturn"))
|
||||||
|
|
||||||
when false:
|
|
||||||
proc pass2(f: (int, int) -> int): (int) -> int =
|
proc pass2(f: (int, int) -> int): (int) -> int =
|
||||||
(x: int) -> int => f(2, x)
|
(x: int) -> int => f(2, x)
|
||||||
|
|
||||||
#echo pass2((x, y) => x + y)
|
echo pass2((x, y) => x + y)(4)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue