Это просто ошибка в компиляторе.Вы можете воспроизвести его с помощью более простого макроса, который вы определяете сами:
scala> import scala.language.experimental.macros
import scala.language.experimental.macros
scala> import scala.reflect.macros.blackbox.Context
import scala.reflect.macros.blackbox.Context
scala> object IncrementMacro { def inc(c: Context)(i: c.Expr[Int]) = i }
defined object IncrementMacro
scala> object Increment { def inc(i: Int): Int = macro IncrementMacro.inc }
defined object Increment
scala> List(1, 2, 3).map(Increment.inc)
<console>:15: error: too few argument lists for macro invocation
List(1, 2, 3).map(Increment.inc)
^
scala> List(1, 2, 3).map(Increment.inc _)
<console>:15: error: macros cannot be eta-expanded
List(1, 2, 3).map(Increment.inc _)
^
scala> List(1, 2, 3).map(Increment.inc(_))
res1: List[Int] = List(1, 2, 3)
Это на 2.12.8, но я чувствую, что помню, как впервые заметил это в 2.10 дней.Может быть, есть проблема или нет, но мораль этой истории в том, что макросы Scala взаимодействуют с другими языковыми функциями, такими как расширение eta в данном случае, странным образом, и, на мой взгляд, вам лучшепросто запоминаю обходные пути, как assert(_)
здесь.