This weekend playing with a macro I faced the following problem.
The following code fails:
import macros
proc hello() =
echo "hola"
macro function() =
let f = genSym(nskProc, ident="hello")
result = quote do:
proc `f`() =
echo "hola2"
expandMacros:
function
It complains due to the redefinition of hello. In my opinion, that doesn't makes sense because the new function name is random.
If I change the line let f = genSym(nskProc, ident="hello") into let f = genSym(nskProc, ident="hello2") it works. It creates a new function that looks like:
proc hello2_3606056() =
echo ["hola2"]
Is there something that I am missing?