if I do:
var x:int
if declared(joe):
x = joe()
else:
x = 4
Run
Essentially, that is conditional compilation: the existence or non-existence of
"joe" is checked at compile time. All is good.
If I use a macro to generate some code, that works also. All good.
But if I use a macro to generate code that contains a conditional compilation
check; not so good. If "joe" is not declared, I get a `Error: undeclared
identifier: 'joe'`; despite the conditional nature of the check.
Is this correct behavior? If so, that is fine; I can see how the order of
compilation makes some things not possible.
If it is correct behavior, what are some good workarounds?