3
上Scalameta Decl.Defない作品私はDEF宣言に使用Scalameta(v1.8.0)注釈です:形質デフ方式
:このように、単に入力を返すように定義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
を使用している場合それはうまく動作します。
形質に右の注釈を付ける方法def
?ありがとう
実装は正常ですが、私の例を試してみることを願っています。また、 'q 'def $ name():$ tpe" 'を定義すると、遭遇した問題と同じ問題が発生します。[github issue](https://github.com/scalameta/paradise)のバグのようです/ issues/211) – LoranceChen