aboutsummaryrefslogtreecommitdiff
path: root/tests/disabled/macro/run/typed-annotated/Macros_1.scala
blob: 4f0660dc456ab401ec096e8eba684611670b2f17 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import scala.reflect.macros.blackbox.Context
import language.experimental.macros

class ann extends scala.annotation.StaticAnnotation

object Macros {
  def impl(c: Context) = {
    import c.universe._
    // val tpt = Annotated(Apply(Select(New(Ident(newTypeName("ann"))), termNames.CONSTRUCTOR), List()), Ident(newTypeName("Int")))
    val tpt = Annotated(Apply(Select(New(Ident(newTypeName("ann"))), termNames.CONSTRUCTOR), List()), TypeTree(weakTypeOf[Int]))
    c.Expr[Unit](Block(
      List(ValDef(Modifiers(), newTermName("x"), tpt, Literal(Constant(42)))),
      Apply(Ident(newTermName("println")), List(Ident(newTermName("x"))))))
  }

  def foo = macro impl
}