It's easy to write hygienic macros in Scala by using reify
and eval
. But it's not always possible to use reify
and eval
.
So, if one can't use them, what are the rules that will ensure that a macro is hygienic? And is there any way to test a macro to ensure that no bad hygiene has slipped through the cracks?
upd. In later milestones of 2.10.0, Expr.eval
got renamed to Expr.splice
.