From 84aa5ebc4d92c7568d6e4eee8c8fb26106b0d873 Mon Sep 17 00:00:00 2001 From: Jacek Sieka Date: Mon, 23 Sep 2024 13:40:40 +0200 Subject: [PATCH] better code, preserve line info --- stew/staticfor.nim | 17 ++++++++--------- tests/all_tests.nim | 1 + 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/stew/staticfor.nim b/stew/staticfor.nim index 3ebfd8a..b74062b 100644 --- a/stew/staticfor.nim +++ b/stew/staticfor.nim @@ -6,18 +6,17 @@ proc replaceNodes(ast: NimNode, what: NimNode, by: NimNode): NimNode = case node.kind: of {nnkIdent, nnkSym}: if node.eqIdent(what): - return by - return node - of nnkEmpty: - return node - of nnkLiterals: - return node + by + else: + node + of nnkEmpty, nnkLiterals: + node else: - var rTree = node.kind.newTree() + let rTree = newNimNode(node.kind, lineInfoFrom = node) for child in node: rTree.add inspect(child) - return rTree - result = inspect(ast) + rTree + inspect(ast) macro staticFor*(idx: untyped{nkIdent}, slice: static Slice[int], body: untyped): untyped = ## Unrolled `for` loop over the given range: diff --git a/tests/all_tests.nim b/tests/all_tests.nim index b62837a..8b43f99 100644 --- a/tests/all_tests.nim +++ b/tests/all_tests.nim @@ -32,6 +32,7 @@ import test_ptrops, test_sequtils2, test_sets, + test_staticfor, test_strformat, test_templateutils, test_winacl