aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/neg/macro-override-method-overrides-macro
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/neg/macro-override-method-overrides-macro')
-rw-r--r--tests/untried/neg/macro-override-method-overrides-macro/Impls_1.scala14
-rw-r--r--tests/untried/neg/macro-override-method-overrides-macro/Macros_Test_2.scala15
2 files changed, 29 insertions, 0 deletions
diff --git a/tests/untried/neg/macro-override-method-overrides-macro/Impls_1.scala b/tests/untried/neg/macro-override-method-overrides-macro/Impls_1.scala
new file mode 100644
index 000000000..8d585be67
--- /dev/null
+++ b/tests/untried/neg/macro-override-method-overrides-macro/Impls_1.scala
@@ -0,0 +1,14 @@
+import scala.reflect.macros.blackbox.Context
+
+object Impls {
+ def impl(c: Context)(tag: String, x: c.Expr[_]) = {
+ import c.{prefix => prefix}
+ import c.universe._
+ c.Expr[Unit](q"println($tag, ${prefix.toString}, $x)")
+ }
+
+ def fooBString(c: Context)(x: c.Expr[_]) = impl(c)("fooBString", x)
+ def fooBInt(c: Context)(x: c.Expr[_]) = impl(c)("fooBInt", x)
+ def fooDInt(c: Context)(x: c.Expr[_]) = impl(c)("fooDInt", x)
+ def fooZString(c: Context)(x: c.Expr[_]) = impl(c)("fooZString", x)
+}
diff --git a/tests/untried/neg/macro-override-method-overrides-macro/Macros_Test_2.scala b/tests/untried/neg/macro-override-method-overrides-macro/Macros_Test_2.scala
new file mode 100644
index 000000000..d47157766
--- /dev/null
+++ b/tests/untried/neg/macro-override-method-overrides-macro/Macros_Test_2.scala
@@ -0,0 +1,15 @@
+class B {
+ def foo(x: String): Unit = macro Impls.fooBString
+ def foo(x: Int): Unit = macro Impls.fooBInt
+ def foo(x: Boolean): Unit = println("fooBBoolean")
+}
+
+class D extends B {
+ override def foo(x: String): Unit = println("fooDString")
+ override def foo(x: Int): Unit = macro Impls.fooDInt
+}
+
+class Z extends D {
+ override def foo(x: String): Unit = macro Impls.fooZString
+ override def foo(x: Boolean): Unit = println("fooZBoolean")
+}