## Problem:
* A second invocation causes error because of **{.inject.}**
INim 0.6.1
Nim Compiler Version 2.0.4 [MacOSX: amd64] at
/Users/dennismisener/.nimble/bin/nim
nim> template tapIt*[T](obj: T, code: untyped): T =
block:
let it {.inject.} = obj
code
it
nim> var num = 123
nim> echo num.tapIt(echo 2 * it)
246
123
nim> echo num.tapIt(echo 2 * it)
Error: redefinition of 'it'; previous declaration here:
/private/var/folders/dn/zz9c2pmx3qddx39kj0btzx340000gn/T/inim_1714005760.nim(9,
9)
Run
What about :
INim 0.6.1
Nim Compiler Version 2.0.4 [MacOSX: amd64] at
/Users/dennismisener/.nimble/bin/nim
nim> template tapIt*[T](obj: T, code: untyped): T =
.... let it {.inject.} = obj
.... code
.... it
....
nim> var num = 123
nim> echo num.tapIt(echo 2 * it)
246
123
nim> echo num.tapIt(echo 2 * it)
246
123
Run