1

我正在构建一个包含 quasiquote 实现的 scala 宏项目:

    val valDefs = named.map { case (child, name) =>
      q"val $name = play.api.libs.json.Json.writes[$child]"
    }

但是在编译时,maven builder(使用增量编译模式)会抛出这个错误:

[ERROR] /home/peng/git/spookystuff/ispark-macro/src/main/scala/JsMacroImpl.scala:74: value q is not a member of StringContext
[ERROR]           q"val $name = play.api.libs.json.Json.writes[$child]"
[ERROR]           ^

我很确定我的 scala 是一个相当晚的版本:2.10.4,为什么它不能识别新标准?

4

1 回答 1

2

Quasiquotes 已在 2.11 中引入。你需要一个 2.10 的编译器插件。请在同一地址查看本节。

于 2014-07-17T11:12:52.133 回答