diff options
Diffstat (limited to 'tests/untried/neg/macro-override-method-overrides-macro')
-rw-r--r-- | tests/untried/neg/macro-override-method-overrides-macro/Impls_1.scala | 14 | ||||
-rw-r--r-- | tests/untried/neg/macro-override-method-overrides-macro/Macros_Test_2.scala | 15 |
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") +} |