mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-23 15:55:23 +00:00
Allow std/macros.params to work with nnkProcTy (#19563)
* Allow std/macros.params to work with nnkProcTy
* Add tests for proc params & pragma
(cherry picked from commit ef3f343ec2)
This commit is contained in:
@@ -1274,12 +1274,19 @@ proc `name=`*(someProc: NimNode; val: NimNode) =
|
||||
else: someProc[0] = val
|
||||
|
||||
proc params*(someProc: NimNode): NimNode =
|
||||
someProc.expectRoutine
|
||||
result = someProc[3]
|
||||
if someProc.kind == nnkProcTy:
|
||||
someProc[0]
|
||||
else:
|
||||
someProc.expectRoutine
|
||||
someProc[3]
|
||||
|
||||
proc `params=`* (someProc: NimNode; params: NimNode) =
|
||||
someProc.expectRoutine
|
||||
expectKind(params, nnkFormalParams)
|
||||
someProc[3] = params
|
||||
if someProc.kind == nnkProcTy:
|
||||
someProc[0] = params
|
||||
else:
|
||||
someProc.expectRoutine
|
||||
someProc[3] = params
|
||||
|
||||
proc pragma*(someProc: NimNode): NimNode =
|
||||
## Get the pragma of a proc type.
|
||||
|
||||
Reference in New Issue
Block a user