diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-01-08 02:14:30 -0800 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-01-08 02:14:30 -0800 |
commit | cafeb34d0480aa0abb088a4315fbe087d0769158 (patch) | |
tree | 71c97c5f4c4bf9308fe349f7f27fbff9e0f49a9d /test/files | |
parent | 527fd9aea58cf5c1b8f638d0321a8d0947d2916a (diff) | |
parent | 5f08c78ccde0461052b5d15949cda3b36e2c9e7a (diff) | |
download | scala-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/files')
-rw-r--r-- | test/files/run/macro-default-params.check | 1 | ||||
-rw-r--r-- | test/files/run/macro-default-params/Macros_1.scala | 27 | ||||
-rw-r--r-- | test/files/run/macro-default-params/Test_2.scala | 3 |
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 +} |