将函数作为参数传递给Scala宏

时间:2017-11-28 14:02:42

标签: scala macros

我正在调试一些与Scala宏相关的代码。

m是一个def宏,它以函数作为参数:

def m(f: T => Boolean) = macro xxx

还有另一个功能g: T => Boolean。我通过将不同的lambda表达式传递给m来找到不同的行为:

  1. (x: T) => g(x)
  2. (x: T) => (() => g(x))()
  3. 有没有正确的方法来调试这种情况?如果我没弄错,参数将扩展为AST并在编译时传递给宏。如何调试编译的AST?

0 个答案:

没有答案