From fb13e3608bd3efcceee23105f4eaf45361d9a978 Mon Sep 17 00:00:00 2001 From: Antonis Geralis <43617260+planetis-m@users.noreply.github.com> Date: Sat, 28 Dec 2024 10:25:49 +0200 Subject: [PATCH] Consider iterator types (#24577) According to the macros doc nnkIteratorTy trees use the same structure as nnkProcTy (cherry picked from commit d3b6dba616f48362a4482cd50143a84f365079c9) --- lib/core/macros.nim | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/core/macros.nim b/lib/core/macros.nim index a95968f14d..8a44fbc833 100644 --- a/lib/core/macros.nim +++ b/lib/core/macros.nim @@ -1327,7 +1327,7 @@ proc `name=`*(someProc: NimNode; val: NimNode) = else: someProc[0] = val proc params*(someProc: NimNode): NimNode = - if someProc.kind == nnkProcTy: + if someProc.kind in {nnkProcTy, nnkIteratorTy}: someProc[0] else: someProc.expectRoutine @@ -1335,7 +1335,7 @@ proc params*(someProc: NimNode): NimNode = proc `params=`* (someProc: NimNode; params: NimNode) = expectKind(params, nnkFormalParams) - if someProc.kind == nnkProcTy: + if someProc.kind in {nnkProcTy, nnkIteratorTy}: someProc[0] = params else: someProc.expectRoutine @@ -1344,7 +1344,7 @@ proc `params=`* (someProc: NimNode; params: NimNode) = proc pragma*(someProc: NimNode): NimNode = ## Get the pragma of a proc type. ## These will be expanded. - if someProc.kind == nnkProcTy: + if someProc.kind in {nnkProcTy, nnkIteratorTy}: result = someProc[1] else: someProc.expectRoutine @@ -1352,7 +1352,7 @@ proc pragma*(someProc: NimNode): NimNode = proc `pragma=`*(someProc: NimNode; val: NimNode) = ## Set the pragma of a proc type. expectKind(val, {nnkEmpty, nnkPragma}) - if someProc.kind == nnkProcTy: + if someProc.kind in {nnkProcTy, nnkIteratorTy}: someProc[1] = val else: someProc.expectRoutine