首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scalameta Decl.Def在特征定义方法上不起作用

Scalameta Decl.Def在特征定义方法上不起作用
EN

Stack Overflow用户
提问于 2017-06-09 13:55:10
回答 0查看 120关注 0票数 3

我对def声明使用了Scalameta(v1.8.0)注释:

代码语言:javascript
复制
trait MyTrait {
  @MyDeclDef
  def f2(): Int
}

定义的注释类只返回输入,如下所示:

代码语言:javascript
复制
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")
    }
  }
}

遇到一些编译器错误:

代码语言:javascript
复制
Error:'=' expected but eof found.
def f2(): Unit
Error:illegal start of simple expression
def f2(): Unit

此外,如果我使用Decl.Varvar v2: Int,它工作得很好。

如何正确注释特征def?谢谢

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44450237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档