我需要生成: case class Foo(param: Bar = BarEnum.SomeCaseObject)
但这代码: val term = TermName("BarEnum.SomeCaseObject")
showCode(q"""case class Foo(val param : Bar = ${term})""")
输出参数默认由反引号所包围,不编译: case c
我正尝试使用Circe创建一个隐式编码器。然而,这个编码器将使用注释创建,因此我使用了Scalameta。这是我的代码。然而,编译器抱怨在quasiquotes中有一个覆盖语句。 class HalResource extends StaticAnnotation {
inline def apply(defn: Any): Any = meta {
val q"..$mods
这就是我想要的: scala> var x:Int = 10
x: Int = 10
scala> var y:Int = 20
y: Int = 20
scala> val ret = q"return $x>$y"
ret: universe.Return = return 10.$greater(20)
scala> val result1 = toolbox.compil
我想为向伴随对象添加方法的案例类编写一个简单的宏注释。问题在于新方法必须考虑带注释的案例类的类型参数。 下面是我需要传递 package my.macros
import org.scalatest._
class DefaultApplyTest extends FlatSpec with Matchers {
@defaultApply case class Generic