我对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来var v2: Int,它工作得很好。
如何正确注释特征def?谢谢
https://stackoverflow.com/questions/44450237
复制相似问题