小编Hei*_*ino的帖子

多个scala宏注释不会生成类文件

我在Scala中创建一个注释,创建一个伴侣类(如果它还不存在)并在伴侣类中放置一些方法.当我有一个注释时它工作正常,但是当我在类上放置两个注释时,不会生成伴随类($ file)的类文件.此外,在已经有伴随对象的类上有两个注释也可以使用o_O.

这是我的注释宏:

class Foo extends StaticAnnotation{
  def macroTransform(annottees: Any*): Any = macro Foo.impl
}

object Foo {
  def impl(c: whitebox.Context)(annottees: c.Expr[Any]*): c.Expr[Any] = {
    import c.universe._

    def addFooFunctionality(module: Tree): Tree = {
      val fooerType = weakTypeOf[Fooer].typeSymbol

      module match {
        case q"object $className { ..$body }" =>
          q"""
              object $className extends $fooerType {
                ..$body

                val doFoo: String = "Foo"
              }
           """
        case q"object $className extends ..$parents { ..$body }" =>
          q"""
             object $className extends ..$parents with $fooerType {
               ..$body

               val …
Run Code Online (Sandbox Code Playgroud)

macros annotations scala

5
推荐指数
0
解决办法
216
查看次数

标签 统计

annotations ×1

macros ×1

scala ×1