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?

Reply via email to