diff options
Diffstat (limited to 'test/files/run/showdecl/Macros_1.scala')
-rw-r--r-- | test/files/run/showdecl/Macros_1.scala | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/files/run/showdecl/Macros_1.scala b/test/files/run/showdecl/Macros_1.scala new file mode 100644 index 0000000000..d0493fb97f --- /dev/null +++ b/test/files/run/showdecl/Macros_1.scala @@ -0,0 +1,30 @@ +import scala.reflect.macros.whitebox._ +import scala.language.experimental.macros + +object Macros { + def impl(c: Context) = { + var messages = List[String]() + def println(msg: String) = messages :+= msg + + import c.universe._ + def test(sym: Symbol): Unit = { + println(s"uninitialized ${sym.name}: ${showDeclaration(sym)}") + sym.typeSignature + println(s"initialized ${sym.name}: ${showDeclaration(sym)}") + } + + println("compile-time") + test(c.mirror.staticClass("D")) + test(c.mirror.staticClass("D").typeSignature.member(TermName("x"))) + test(c.mirror.staticClass("D").typeSignature.member(TermName("y"))) + test(c.mirror.staticClass("D").typeSignature.member(TermName("z"))) + test(c.mirror.staticClass("D").typeSignature.member(TermName("t"))) + test(c.mirror.staticClass("D").typeSignature.member(TypeName("W"))) + test(c.mirror.staticClass("D").typeSignature.member(TypeName("C"))) + test(c.mirror.staticClass("D").typeSignature.member(TermName("O"))) + + q"..${messages.map(msg => q"println($msg)")}" + } + + def foo: Any = macro impl +}
\ No newline at end of file |