summaryrefslogtreecommitdiff
path: root/src/reflect
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2014-01-31 23:29:35 +0100
committerEugene Burmako <xeno.by@gmail.com>2014-02-14 23:51:24 +0100
commit73adf2d9de441e151a117a5b33ae707ad79a9f36 (patch)
treea89a66cdbe161ef473a4ea16d5a6de17b50d81e2 /src/reflect
parent63462f3d5f032639e80571176c91c34b91e65441 (diff)
downloadscala-73adf2d9de441e151a117a5b33ae707ad79a9f36.tar.gz
scala-73adf2d9de441e151a117a5b33ae707ad79a9f36.tar.bz2
scala-73adf2d9de441e151a117a5b33ae707ad79a9f36.zip
introduces c.internal
Sometimes universe.internal just won’t cut it (for example, when internal APIs need access to enclosingOwner or to the typechecker), and for that we need c.internal. It’s totally not a problem for us in Scala, because with first-class modules we can just inherit c.internal from c.universe.internal and have it expose all the basic APIs automatically. Yay for Scala!
Diffstat (limited to 'src/reflect')
-rw-r--r--src/reflect/scala/reflect/macros/Internals.scala18
-rw-r--r--src/reflect/scala/reflect/macros/blackbox/Context.scala3
2 files changed, 20 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/macros/Internals.scala b/src/reflect/scala/reflect/macros/Internals.scala
new file mode 100644
index 0000000000..f74f120470
--- /dev/null
+++ b/src/reflect/scala/reflect/macros/Internals.scala
@@ -0,0 +1,18 @@
+package scala
+package reflect
+package macros
+
+/**
+ * <span class="badge badge-red" style="float: right;">EXPERIMENTAL</span>
+ * @see [[scala.reflect.api.Internals]]
+ */
+trait Internals {
+ self: blackbox.Context =>
+
+ /** @see [[scala.reflect.api.Internals]] */
+ val internal: ContextInternalApi
+
+ /** @see [[scala.reflect.api.Internals]] */
+ trait ContextInternalApi extends universe.MacroInternalApi {
+ }
+}
diff --git a/src/reflect/scala/reflect/macros/blackbox/Context.scala b/src/reflect/scala/reflect/macros/blackbox/Context.scala
index 05d9595c3a..2f9c512efa 100644
--- a/src/reflect/scala/reflect/macros/blackbox/Context.scala
+++ b/src/reflect/scala/reflect/macros/blackbox/Context.scala
@@ -42,7 +42,8 @@ trait Context extends Aliases
with Typers
with Parsers
with Evals
- with ExprUtils {
+ with ExprUtils
+ with Internals {
/** The compile-time universe. */
val universe: Universe