我有一個對嵌套函數應用程序進行一些分析的宏。它匹配的應用和檢索的參數類型是這樣的: case q"$f[..$targs](..$args)(...$otherArgs)" =>
// retrieve the list of all parameter types
val paramTpes = f.tpe match {
case pmt: PolyType
鑑於以下類型的寫作宏: sealed trait PosIntCheckResult
case class LteZero(x: Int) extends PosIntCheckResult
case object NotConstant extends PosIntCheckResult
我試圖寫檢查給定Int是宏大於0 import reflect.macros.Context
d
我使用宏註釋來檢查類的字段並基於這些字段添加成員。 例如 @AddVal
class A(x: Int)
擴展到 class A(x: Int){
val get: Int = x
}
提取ValDef後,它tpe領域仍然null所以要獲得類型我有兩個選擇: 1)如果我打電話的ToString的類型樹,我可以看到類型,但現在我已經失去了一些類型安全 2)如果我在類型樹上使用c
我正在嘗試編寫一個可以使用有關某個類的字段信息來生成模式的宏。例如,假設我有一個名爲SchemaWriter[T]的類型類,我希望使用宏來生成實現。 trait SchemaWriter[T] {
def schema: org.bibble.MsonSchema
}
case class MsonSchema(fields: Seq[MsonType])
case class
我有以下配置: sealed trait Status
case object Edited extends Status
case object NotEdited extends Status
case class Tweet(content:String, status:Status)
我想使用播放JSON格式,所以我想我必須有這樣的事情(我不想做它的同伴對象): trait J