summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-01-08 02:14:30 -0800
committerJason Zaugg <jzaugg@gmail.com>2014-01-08 02:14:30 -0800
commitcafeb34d0480aa0abb088a4315fbe087d0769158 (patch)
tree71c97c5f4c4bf9308fe349f7f27fbff9e0f49a9d /test
parent527fd9aea58cf5c1b8f638d0321a8d0947d2916a (diff)
parent5f08c78ccde0461052b5d15949cda3b36e2c9e7a (diff)
downloadscala-cafeb34d0480aa0abb088a4315fbe087d0769158.tar.gz
scala-cafeb34d0480aa0abb088a4315fbe087d0769158.tar.bz2
scala-cafeb34d0480aa0abb088a4315fbe087d0769158.zip
Merge pull request #3305 from xeno-by/topic/copy-untyped
awakens default getter synthesis from the untyper nightmare
Diffstat (limited to 'test')
-rw-r--r--test/files/run/macro-default-params.check1
-rw-r--r--test/files/run/macro-default-params/Macros_1.scala27
-rw-r--r--test/files/run/macro-default-params/Test_2.scala3
3 files changed, 31 insertions, 0 deletions
diff --git a/test/files/run/macro-default-params.check b/test/files/run/macro-default-params.check
new file mode 100644
index 0000000000..573541ac97
--- /dev/null
+++ b/test/files/run/macro-default-params.check
@@ -0,0 +1 @@
+0
diff --git a/test/files/run/macro-default-params/Macros_1.scala b/test/files/run/macro-default-params/Macros_1.scala
new file mode 100644
index 0000000000..47780ea4b8
--- /dev/null
+++ b/test/files/run/macro-default-params/Macros_1.scala
@@ -0,0 +1,27 @@
+import scala.language.experimental.macros
+import scala.reflect.macros.WhiteboxContext
+
+object Macros {
+ def id[A]: A = null.asInstanceOf[A]
+
+ def foo: Any = macro impl
+ def impl(c: WhiteboxContext): c.Tree = {
+ import c.universe._
+ import Flag._
+
+ lazy val tpe = TypeTree(typeOf[Int])
+
+ /* If we used this line instead, it would work! */
+ // lazy val tpe = tq"Int"
+
+ lazy val param: ValDef = {
+ val p1 = q"val a: ${tpe.duplicate} = Macros.id[${tpe.duplicate}]"
+ ValDef(Modifiers(DEFAULTPARAM), p1.name, p1.tpt, p1.rhs)
+ }
+
+ q"""
+ class C { def f($param) = a }
+ println(new C().f())
+ """
+ }
+}
diff --git a/test/files/run/macro-default-params/Test_2.scala b/test/files/run/macro-default-params/Test_2.scala
new file mode 100644
index 0000000000..5d19639cdd
--- /dev/null
+++ b/test/files/run/macro-default-params/Test_2.scala
@@ -0,0 +1,3 @@
+object Test extends App {
+ Macros.foo
+}