summaryrefslogtreecommitdiff
path: root/test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-04-14 10:33:10 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-04-14 11:33:56 +0200
commit0ba3d542cc236ab2dbed3dc551920ede94787a0c (patch)
tree9e7e6e0c26a8d2f8e5b62fbf2a609349acbd8855 /test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala
parent3a2901da406f2478b5634b0636e56de9c4cd676d (diff)
downloadscala-0ba3d542cc236ab2dbed3dc551920ede94787a0c.tar.gz
scala-0ba3d542cc236ab2dbed3dc551920ede94787a0c.tar.bz2
scala-0ba3d542cc236ab2dbed3dc551920ede94787a0c.zip
restores some disabled macro tests, makes checkFeature synchronous when used for macros
Diffstat (limited to 'test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala')
-rw-r--r--test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala b/test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala
new file mode 100644
index 0000000000..cf34f1685d
--- /dev/null
+++ b/test/files/run/macro-reflective-mamd-normal-mi/Macros_Test_2.scala
@@ -0,0 +1,17 @@
+//object Macros {
+// def foo(x: Int) = macro Impls.foo
+//}
+
+object Test extends App {
+ import scala.reflect.mirror._
+
+ val macrobody = Select(Ident(newTermName("Impls")), newTermName("foo"))
+ val macroparam = ValDef(NoMods, newTermName("x"), TypeTree(definitions.IntClass.asType), EmptyTree)
+ val macrodef = DefDef(Modifiers(Set(scala.reflect.api.Modifier.`macro`)), newTermName("foo"), Nil, List(List(macroparam)), TypeTree(), macrobody)
+ val modulector = DefDef(NoMods, nme.CONSTRUCTOR, Nil, List(List()), TypeTree(), Block(Apply(Select(Super(This(EmptyTypeName), EmptyTypeName), nme.CONSTRUCTOR), List())))
+ val module = ModuleDef(NoMods, newTermName("Macros"), Template(Nil, emptyValDef, List(modulector, macrodef)))
+ val macroapp = Apply(Select(Ident("Macros"), newTermName("foo")), List(Literal(Constant(42))))
+ val tree = Block(macrodef, module, macroapp)
+ val toolbox = mkToolBox(options = "-language:experimental.macros")
+ println(toolbox.runExpr(tree))
+}