summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-06-07 16:38:13 -0700
committerPaul Phillips <paulp@improving.org>2013-06-07 16:38:13 -0700
commitaefdbd3f923826c6efe87d6f5dbaa84095c090ce (patch)
tree5fda90b3f75949b5d947ceaef5f017e78f776bc2 /test
parent5312d6305530eb14d369d0f4acaf7ca4e278ea72 (diff)
parenta45d3e5658a1ccb57d3b420eb36d84f7170404b5 (diff)
downloadscala-aefdbd3f923826c6efe87d6f5dbaa84095c090ce.tar.gz
scala-aefdbd3f923826c6efe87d6f5dbaa84095c090ce.tar.bz2
scala-aefdbd3f923826c6efe87d6f5dbaa84095c090ce.zip
Merge pull request #2622 from scalamacros/pullrequest/paradise
Backport from paradise/macros
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/macro-invalidshape.check7
-rw-r--r--test/files/neg/macro-invalidshape/Macros_Test_2.scala5
-rw-r--r--test/files/run/macro-impl-relaxed.check4
-rw-r--r--test/files/run/macro-impl-relaxed/Macros_1.scala14
-rw-r--r--test/files/run/macro-impl-relaxed/Test_2.scala6
5 files changed, 35 insertions, 1 deletions
diff --git a/test/files/neg/macro-invalidshape.check b/test/files/neg/macro-invalidshape.check
index 40a2952569..1938f5ae47 100644
--- a/test/files/neg/macro-invalidshape.check
+++ b/test/files/neg/macro-invalidshape.check
@@ -12,4 +12,9 @@ Macros_Test_2.scala:4: error: missing arguments for method foo in object Impls;
follow this method with `_' if you want to treat it as a partially applied function
def foo3(x: Any) = macro {2; Impls.foo}
^
-three errors found
+Macros_Test_2.scala:7: error: macro implementation reference has wrong shape. required:
+macro [<static object>].<method name>[[<type args>]] or
+macro [<macro bundle>].<method name>[[<type args>]]
+ def foo = macro impl
+ ^
+four errors found
diff --git a/test/files/neg/macro-invalidshape/Macros_Test_2.scala b/test/files/neg/macro-invalidshape/Macros_Test_2.scala
index f39ad20c5d..cf37e14d8e 100644
--- a/test/files/neg/macro-invalidshape/Macros_Test_2.scala
+++ b/test/files/neg/macro-invalidshape/Macros_Test_2.scala
@@ -2,6 +2,11 @@ object Macros {
def foo1(x: Any) = macro 2
def foo2(x: Any) = macro Impls.foo(null)(null)
def foo3(x: Any) = macro {2; Impls.foo}
+ {
+ def impl(c: scala.reflect.macros.Context) = c.literalUnit
+ def foo = macro impl
+ foo
+ }
}
object Test extends App {
diff --git a/test/files/run/macro-impl-relaxed.check b/test/files/run/macro-impl-relaxed.check
new file mode 100644
index 0000000000..487b116534
--- /dev/null
+++ b/test/files/run/macro-impl-relaxed.check
@@ -0,0 +1,4 @@
+2
+2
+2
+2
diff --git a/test/files/run/macro-impl-relaxed/Macros_1.scala b/test/files/run/macro-impl-relaxed/Macros_1.scala
new file mode 100644
index 0000000000..af62646b4e
--- /dev/null
+++ b/test/files/run/macro-impl-relaxed/Macros_1.scala
@@ -0,0 +1,14 @@
+import language.experimental.macros
+import scala.reflect.macros.Context
+
+object Macros {
+ def implUU(c: Context)(x: c.Tree): c.Tree = x
+ def implTU(c: Context)(x: c.Expr[Int]): c.Tree = x.tree
+ def implUT(c: Context)(x: c.Tree): c.Expr[Int] = c.Expr[Int](x)
+ def implTT(c: Context)(x: c.Expr[Int]): c.Expr[Int] = x
+
+ def fooUU(x: Int): Int = macro implUU
+ def fooTU(x: Int): Int = macro implTU
+ def fooUT(x: Int): Int = macro implUT
+ def fooTT(x: Int): Int = macro implTT
+} \ No newline at end of file
diff --git a/test/files/run/macro-impl-relaxed/Test_2.scala b/test/files/run/macro-impl-relaxed/Test_2.scala
new file mode 100644
index 0000000000..2eaeef0fd0
--- /dev/null
+++ b/test/files/run/macro-impl-relaxed/Test_2.scala
@@ -0,0 +1,6 @@
+object Test extends App {
+ println(Macros.fooUU(2))
+ println(Macros.fooTU(2))
+ println(Macros.fooUT(2))
+ println(Macros.fooTT(2))
+} \ No newline at end of file