aboutsummaryrefslogtreecommitdiff
path: root/tests/disabled/macro/run/t7777/Macros_1.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/disabled/macro/run/t7777/Macros_1.scala')
-rw-r--r--tests/disabled/macro/run/t7777/Macros_1.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/disabled/macro/run/t7777/Macros_1.scala b/tests/disabled/macro/run/t7777/Macros_1.scala
new file mode 100644
index 000000000..1dc6d6740
--- /dev/null
+++ b/tests/disabled/macro/run/t7777/Macros_1.scala
@@ -0,0 +1,17 @@
+import scala.language.experimental.macros
+import scala.language.dynamics
+import scala.reflect.macros.whitebox.Context
+
+class DynMacro extends Dynamic {
+ def applyDynamic(s: String)(xs: Any*): DynMacro =
+ macro DynMacro.applyDynamicMacro
+}
+
+object DynMacro extends DynMacro {
+ def applyDynamicMacro(c: Context)(s: c.Expr[String])(xs: c.Expr[Any]*): c.Expr[DynMacro] = {
+ import c.universe._
+ val Literal(Constant(n: String)) = s.tree
+ val args = xs.map(_.tree.toString).mkString("(", ", ", ")")
+ c.Expr(q"println(${ n + args }); ${c.prefix.tree}")
+ }
+} \ No newline at end of file