aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/neg/macro-basic-mamdmi/Impls_Macros_Test_1.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/neg/macro-basic-mamdmi/Impls_Macros_Test_1.scala')
-rw-r--r--tests/untried/neg/macro-basic-mamdmi/Impls_Macros_Test_1.scala34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/untried/neg/macro-basic-mamdmi/Impls_Macros_Test_1.scala b/tests/untried/neg/macro-basic-mamdmi/Impls_Macros_Test_1.scala
new file mode 100644
index 000000000..c059d962e
--- /dev/null
+++ b/tests/untried/neg/macro-basic-mamdmi/Impls_Macros_Test_1.scala
@@ -0,0 +1,34 @@
+import scala.reflect.macros.blackbox.Context
+
+object Impls {
+ def foo(c: Context)(x: c.Expr[Int]): c.Expr[Int] = {
+ import c.universe._
+ c.Expr[Int](q"$x + 1")
+ }
+
+ def bar(c: Context)(x: c.Expr[Int]): c.Expr[Int] = {
+ import c.universe._
+ c.Expr[Int](q"$x + 2")
+ }
+
+ def quux(c: Context)(x: c.Expr[Int]): c.Expr[Int] = {
+ import c.universe._
+ c.Expr[Int](q"$x + 3")
+ }
+}
+
+object Macros {
+ object Shmacros {
+ def foo(x: Int): Int = macro Impls.foo
+ }
+ def bar(x: Int): Int = macro Impls.bar
+}
+
+class Macros {
+ def quux(x: Int): Int = macro Impls.quux
+}
+
+object Test extends App {
+ import Macros.Shmacros._
+ println(foo(2) + Macros.bar(2) * new Macros().quux(4))
+}