diff options
author | Tanguy <tanguy@status.im> | 2022-02-25 12:57:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-25 12:57:58 +0100 |
commit | ef3f343ec2979d22a5d4e51f4328e4a4c21d68dc (patch) | |
tree | 079ebdb1a1dd6ce5ea4d0a64995d41bbf50621f6 /lib | |
parent | fe791c67b4c028d2e439e6f74e0a4225ba6cc2f1 (diff) | |
download | Nim-ef3f343ec2979d22a5d4e51f4328e4a4c21d68dc.tar.gz |
Allow std/macros.params to work with nnkProcTy (#19563)
* Allow std/macros.params to work with nnkProcTy * Add tests for proc params & pragma
Diffstat (limited to 'lib')
-rw-r--r-- | lib/core/macros.nim | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/core/macros.nim b/lib/core/macros.nim index c0e6e5154..4d040cebc 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -1271,12 +1271,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. |