Scala 为宏注释添加别名

Scala 为宏注释添加别名,scala,annotations,alias,scala-macros,Scala,Annotations,Alias,Scala Macros,在执行DSL时,我希望向现有宏注释添加几个别名,如果可能的话,我希望避免键入宏变换定义。也就是说,我想为“宏头”声明一个别名,而不是宏实现 我做了一些不成功的尝试。例如,给定原始注释标题 class original extends StaticAnnotation { def macroTransform(annottees: Any*) = macro originalImpl } 我尝试使用类型别名创建别名: type alias1 = original @alias1 trait

在执行DSL时,我希望向现有宏注释添加几个别名,如果可能的话,我希望避免键入
宏变换
定义。也就是说,我想为“宏头”声明一个别名,而不是宏实现

我做了一些不成功的尝试。例如,给定原始注释标题

class original extends StaticAnnotation {
  def macroTransform(annottees: Any*) = macro originalImpl
}
我尝试使用类型别名创建别名:

type alias1 = original
@alias1 trait Whatever
此外,我部署了一个继承注释版本:

class alias2 extends original
@alias2 trait Whatever

但是,它们都没有扩展。有什么方便的方法吗?

到目前为止,这是不可能的,因为typechecker使用非常有限的名称解析算法来确定给定标识符是否引用宏注释。不幸的是,在这种算法的限制下,不可能进行dealias。我已经在创建了一个bug报告