From 89bacb9c25a58454ff1878e67f7ea07ffc8c269f Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Tue, 12 May 2015 18:30:53 +0200 Subject: Run tests as they were in scala. --- tests/pending/run/t8048b/Macros_1.scala | 37 +++++++++++++++++++++++++++++++++ tests/pending/run/t8048b/Test_2.scala | 5 +++++ 2 files changed, 42 insertions(+) create mode 100644 tests/pending/run/t8048b/Macros_1.scala create mode 100644 tests/pending/run/t8048b/Test_2.scala (limited to 'tests/pending/run/t8048b') diff --git a/tests/pending/run/t8048b/Macros_1.scala b/tests/pending/run/t8048b/Macros_1.scala new file mode 100644 index 000000000..520a6fac0 --- /dev/null +++ b/tests/pending/run/t8048b/Macros_1.scala @@ -0,0 +1,37 @@ +// see the following discussions to understand what's being tested here: +// * https://issues.scala-lang.org/browse/SI-6992 +// * https://issues.scala-lang.org/browse/SI-8048 +// * http://stackoverflow.com/questions/14370842/getting-a-structural-type-with-an-anonymous-classs-methods-from-a-macro +// * http://stackoverflow.com/questions/18480707/method-cannot-be-accessed-in-macro-generated-class/18485004#18485004 +// * https://groups.google.com/forum/#!topic/scala-internals/eXQt-BPm4i8 + +import scala.language.experimental.macros +import scala.reflect.macros.whitebox.Context + +object Macros { + def impl1(c: Context) = { + import c.universe._ + q""" + trait Foo { def x = 2 } + new Foo {} + """ + } + def foo1: Any = macro impl1 + + def impl2(c: Context) = { + import c.universe._ + q""" + class Foo { def x = 2 } + new Foo + """ + } + def foo2: Any = macro impl2 + + def impl3(c: Context) = { + import c.universe._ + q""" + new { def x = 2 } + """ + } + def foo3: Any = macro impl3 +} \ No newline at end of file diff --git a/tests/pending/run/t8048b/Test_2.scala b/tests/pending/run/t8048b/Test_2.scala new file mode 100644 index 000000000..fb410dab7 --- /dev/null +++ b/tests/pending/run/t8048b/Test_2.scala @@ -0,0 +1,5 @@ +object Test extends App { + println(Macros.foo1.x) + println(Macros.foo2.x) + println(Macros.foo3.x) +} \ No newline at end of file -- cgit v1.2.3