我需要生成: 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