From 648dae6a504f0a5c24d3a7f6efc996f508a006ce Mon Sep 17 00:00:00 2001 From: Eugene Burmako Date: Wed, 19 Sep 2012 12:01:25 +0200 Subject: SI-6394 fixes macros.Context.enclosingClass Previously I used typer.context.enclClass, but it seems to do something completely unexpected, so I switched to manual context traversal. --- test/files/run/t6394a.check | 1 + test/files/run/t6394a.flags | 1 + test/files/run/t6394a/Macros_1.scala | 12 ++++++++++++ test/files/run/t6394a/Test_2.scala | 4 ++++ 4 files changed, 18 insertions(+) create mode 100644 test/files/run/t6394a.check create mode 100644 test/files/run/t6394a.flags create mode 100644 test/files/run/t6394a/Macros_1.scala create mode 100644 test/files/run/t6394a/Test_2.scala (limited to 'test/files') diff --git a/test/files/run/t6394a.check b/test/files/run/t6394a.check new file mode 100644 index 0000000000..34997f71e3 --- /dev/null +++ b/test/files/run/t6394a.check @@ -0,0 +1 @@ +TEST diff --git a/test/files/run/t6394a.flags b/test/files/run/t6394a.flags new file mode 100644 index 0000000000..cd66464f2f --- /dev/null +++ b/test/files/run/t6394a.flags @@ -0,0 +1 @@ +-language:experimental.macros \ No newline at end of file diff --git a/test/files/run/t6394a/Macros_1.scala b/test/files/run/t6394a/Macros_1.scala new file mode 100644 index 0000000000..3d39d3e40a --- /dev/null +++ b/test/files/run/t6394a/Macros_1.scala @@ -0,0 +1,12 @@ +import scala.reflect.macros.Context + +object Macros { + def impl(c:Context): c.Expr[Any] = { + import c.universe._ + + val selfTree = This(c.enclosingClass.symbol.asModule.moduleClass) + c.Expr[AnyRef](selfTree) + } + + def foo: Any = macro impl +} \ No newline at end of file diff --git a/test/files/run/t6394a/Test_2.scala b/test/files/run/t6394a/Test_2.scala new file mode 100644 index 0000000000..75e84f0e38 --- /dev/null +++ b/test/files/run/t6394a/Test_2.scala @@ -0,0 +1,4 @@ +object Test extends App { + println(Macros.foo) + override def toString = "TEST" +} \ No newline at end of file -- cgit v1.2.3