3
我使用Scalameta(v1.8.0)註釋到DEF聲明:Scalameta Decl.Def不是工作在一個特質DEF方法
trait MyTrait {
@MyDeclDef
def f2(): Int
}
定義只是返回輸入註解類,因爲這:
import scala.meta._
class MyDeclDef extends scala.annotation.StaticAnnotation {
inline def apply(defn: Any): Any = meta {
defn match {
case defn: Decl.Def =>
defn
case _ =>
println(defn.structure)
abort("@MyDeclDef most annotate a Decl.Def")
}
}
}
一些編譯器錯誤的邂逅:
Error:'=' expected but eof found.
def f2(): Unit
Error:illegal start of simple expression
def f2(): Unit
而且,如果我使用Decl.Var
到var v2: Int
它工作正常。
如何正確註釋性狀def
?謝謝
你的實現工作正常,但我希望你可以嘗試我的例子。另外,如果你定義了'q「def $ name():$ tpe」',它會引發與遇到的問題相同的問題。[github問題](https://github.com/scalameta/paradise /問題/ 211) – LoranceChen