标签: scala macros scala-2.10
我一直在测试一些嵌套的宏调用,它们按预期工作(...正如我所料!)例如,假设一个虚构的添加宏和以下表达式:
add(1, add(2, 3))
首先,内部添加扩展(2 + 3),其次,外部添加部分(1 +(2 + 3))。我已经看到outter宏没有从内部调用中获得任何噪声 - 在输入表达式中 - 因此内部扩展似乎对它完全透明。这个事实总是成立(即使是更复杂的宏和类型)?这样做是否安全?
答案 0 :(得分:8)
最内层的宏总是先扩展(即使它们是按名称参数提供的)。