diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-06-04 13:53:13 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-06-08 15:32:17 +0200 |
commit | 7b0f0a142bb526f4bd108a8c208ec9a8952398c9 (patch) | |
tree | ee13d036756be41521a9eb3f1e05898410ab744e /test/files/run/macro-reify-splice-outside-reify/Impls_Macros_1.scala | |
parent | d9103e01b467634d61baa3b131aeb93fca9e20a5 (diff) | |
download | scala-7b0f0a142bb526f4bd108a8c208ec9a8952398c9.tar.gz scala-7b0f0a142bb526f4bd108a8c208ec9a8952398c9.tar.bz2 scala-7b0f0a142bb526f4bd108a8c208ec9a8952398c9.zip |
repairs the tests after the refactoring spree
Diffstat (limited to 'test/files/run/macro-reify-splice-outside-reify/Impls_Macros_1.scala')
-rw-r--r-- | test/files/run/macro-reify-splice-outside-reify/Impls_Macros_1.scala | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/files/run/macro-reify-splice-outside-reify/Impls_Macros_1.scala b/test/files/run/macro-reify-splice-outside-reify/Impls_Macros_1.scala new file mode 100644 index 0000000000..3ddfe6a737 --- /dev/null +++ b/test/files/run/macro-reify-splice-outside-reify/Impls_Macros_1.scala @@ -0,0 +1,24 @@ +import scala.reflect.makro.{Context => Ctx} + +object Impls { + def foo(c: Ctx)(x: c.Expr[Int]) = { + val x1 = c.Expr[Int](c.resetAllAttrs(x.tree)) +// was: c.literal(x1.splice) + c.literal(eval(c)(x1)) + } + + private def eval[T](c: Ctx)(x: c.Expr[T]): T = { + import scala.reflect.runtime.{universe => ru} + val mirror = ru.runtimeMirror(c.libraryClassLoader) + import scala.tools.reflect.ToolBox + val toolBox = mirror.mkToolBox() + val importer = ru.mkImporter(c.universe).asInstanceOf[ru.Importer { val from: c.universe.type }] + val tree = c.resetAllAttrs(x.tree.duplicate) + val imported = importer.importTree(tree) + toolBox.runExpr(imported).asInstanceOf[T] + } +} + +object Macros { + def foo(x: Int) = macro Impls.foo +} |