嵌套宏调用是否安全?

时间:2012-07-03 14:55:58

标签: scala macros scala-2.10

我一直在测试一些嵌套的宏调用,它们按预期工作(...正如我所料!)例如,假设一个虚构的添加宏和以下表达式:

add(1, add(2, 3))

首先,内部添加扩展(2 + 3),其次,外部添加部分(1 +(2 + 3))。我已经看到outter宏没有从内部调用中获得任何噪声 - 在输入表达式中 - 因此内部扩展似乎对它完全透明。这个事实总是成立(即使是更复杂的宏和类型)?这样做是否安全?

1 个答案:

答案 0 :(得分:8)

最内层的宏总是先扩展(即使它们是按名称参数提供的)。