aboutsummaryrefslogtreecommitdiff
path: root/tests/disabled/macro/run/macro-expand-overload
diff options
context:
space:
mode:
Diffstat (limited to 'tests/disabled/macro/run/macro-expand-overload')
-rw-r--r--tests/disabled/macro/run/macro-expand-overload/Impls_1.scala15
-rw-r--r--tests/disabled/macro/run/macro-expand-overload/Macros_Test_2.scala20
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/disabled/macro/run/macro-expand-overload/Impls_1.scala b/tests/disabled/macro/run/macro-expand-overload/Impls_1.scala
new file mode 100644
index 000000000..ef9d01d4e
--- /dev/null
+++ b/tests/disabled/macro/run/macro-expand-overload/Impls_1.scala
@@ -0,0 +1,15 @@
+import scala.reflect.macros.blackbox.Context
+
+object Impls {
+ def impl(c: Context)(tag: String, x: c.Expr[_]) = {
+ import c.{prefix => prefix}
+ import c.universe._
+ val body = Apply(Select(Ident(definitions.PredefModule), TermName("println")), List(Literal(Constant(tag)), Literal(Constant(prefix.toString)), x.tree))
+ c.Expr[Unit](body)
+ }
+
+ def fooObjectString(c: Context)(x: c.Expr[_]) = impl(c)("fooObjectString", x)
+ def fooObjectInt(c: Context)(x: c.Expr[_]) = impl(c)("fooObjectInt", x)
+ def fooClassString(c: Context)(x: c.Expr[_]) = impl(c)("fooClassString", x)
+ def fooClassInt(c: Context)(x: c.Expr[_]) = impl(c)("fooClassInt", x)
+} \ No newline at end of file
diff --git a/tests/disabled/macro/run/macro-expand-overload/Macros_Test_2.scala b/tests/disabled/macro/run/macro-expand-overload/Macros_Test_2.scala
new file mode 100644
index 000000000..b367f35b7
--- /dev/null
+++ b/tests/disabled/macro/run/macro-expand-overload/Macros_Test_2.scala
@@ -0,0 +1,20 @@
+object Macros {
+ def foo(x: String): Unit = macro Impls.fooObjectString
+ def foo(x: Int): Unit = macro Impls.fooObjectInt
+ def foo(x: Boolean): Unit = println("fooObjectBoolean")
+}
+
+class Macros {
+ def foo(x: String): Unit = macro Impls.fooClassString
+ def foo(x: Int): Unit = macro Impls.fooClassInt
+ def foo(x: Boolean): Unit = println("fooClassBoolean")
+}
+
+object Test extends dotty.runtime.LegacyApp {
+ Macros.foo("42")
+ Macros.foo(42)
+ Macros.foo(true)
+ new Macros().foo("42")
+ new Macros().foo(42)
+ new Macros().foo(true)
+} \ No newline at end of file