summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-07-21 10:04:56 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-08-02 15:51:04 +0200
commitf126f40b8c83be96404fc5fbd50b26b694bb9e86 (patch)
tree077e33161c2a1152a9d7319d92e017dc7e443d2f /src
parent280c4906d18fd827e2c934af49e253064ac753ef (diff)
downloadscala-f126f40b8c83be96404fc5fbd50b26b694bb9e86.tar.gz
scala-f126f40b8c83be96404fc5fbd50b26b694bb9e86.tar.bz2
scala-f126f40b8c83be96404fc5fbd50b26b694bb9e86.zip
prepares our macro defs for refactoring (Step II)
Since the previous commit the compiler doesn't need any help to find out that fast-tracked macros are macros. Hence I'm replacing their RHSes with the universal ??? body. This way macro definitions defined in scala (for example, tag materialization macros or certain string formatters) won't stand in the way of the changes to the macro system.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/reflect/reify/package.scala1
-rw-r--r--src/library/scala/StringContext.scala4
-rw-r--r--src/library/scala/reflect/base/Base.scala1
-rw-r--r--src/library/scala/reflect/makro/internal/package.scala7
-rw-r--r--src/reflect/scala/reflect/api/Universe.scala4
-rw-r--r--src/reflect/scala/reflect/makro/Context.scala2
-rw-r--r--src/reflect/scala/reflect/runtime/package.scala5
7 files changed, 7 insertions, 17 deletions
diff --git a/src/compiler/scala/reflect/reify/package.scala b/src/compiler/scala/reflect/reify/package.scala
index e4cf451643..bd17b2d5df 100644
--- a/src/compiler/scala/reflect/reify/package.scala
+++ b/src/compiler/scala/reflect/reify/package.scala
@@ -1,7 +1,6 @@
package scala.reflect
import language.implicitConversions
-import language.experimental.macros
import scala.reflect.base.{Universe => BaseUniverse}
import scala.reflect.makro.{Context, ReificationError, UnexpectedReificationError}
import scala.tools.nsc.Global
diff --git a/src/library/scala/StringContext.scala b/src/library/scala/StringContext.scala
index 7d37fa4aa1..723d95a499 100644
--- a/src/library/scala/StringContext.scala
+++ b/src/library/scala/StringContext.scala
@@ -8,8 +8,6 @@
package scala
-import language.experimental.macros
-
/** A class to support string interpolation.
* This class supports string interpolation as outlined in Scala SIP-11.
* It needs to be fully documented once the SIP is accepted.
@@ -99,7 +97,7 @@ case class StringContext(parts: String*) {
* format specifier `%%`.
*/
// The implementation is magically hardwired into `scala.tools.reflect.MacroImplementations.macro_StringInterpolation_f`
- def f(args: Any*): String = macro ???
+ def f(args: Any*): String = ??? // macro
}
object StringContext {
diff --git a/src/library/scala/reflect/base/Base.scala b/src/library/scala/reflect/base/Base.scala
index 385dc6275f..b887b87732 100644
--- a/src/library/scala/reflect/base/Base.scala
+++ b/src/library/scala/reflect/base/Base.scala
@@ -1,7 +1,6 @@
package scala.reflect
package base
-import language.experimental.macros
import java.io.PrintWriter
import scala.annotation.switch
import scala.ref.WeakReference
diff --git a/src/library/scala/reflect/makro/internal/package.scala b/src/library/scala/reflect/makro/internal/package.scala
index 78cb0ffb10..f08448297c 100644
--- a/src/library/scala/reflect/makro/internal/package.scala
+++ b/src/library/scala/reflect/makro/internal/package.scala
@@ -1,7 +1,6 @@
package scala.reflect
package makro
-import language.experimental.macros
import scala.reflect.base.{Universe => BaseUniverse}
// anchors for materialization macros emitted during tag materialization in Implicits.scala
@@ -10,7 +9,7 @@ import scala.reflect.base.{Universe => BaseUniverse}
// todo. once we have implicit macros for tag generation, we can remove these anchors
// [Eugene++] how do I hide this from scaladoc?
package object internal {
- private[scala] def materializeClassTag[T](u: BaseUniverse): ClassTag[T] = macro ???
- private[scala] def materializeAbsTypeTag[T](u: BaseUniverse): u.AbsTypeTag[T] = macro ???
- private[scala] def materializeTypeTag[T](u: BaseUniverse): u.TypeTag[T] = macro ???
+ private[scala] def materializeClassTag[T](u: BaseUniverse): ClassTag[T] = ??? // macro
+ private[scala] def materializeAbsTypeTag[T](u: BaseUniverse): u.AbsTypeTag[T] = ??? // macro
+ private[scala] def materializeTypeTag[T](u: BaseUniverse): u.TypeTag[T] = ??? // macro
}
diff --git a/src/reflect/scala/reflect/api/Universe.scala b/src/reflect/scala/reflect/api/Universe.scala
index 85d8adc44f..da05b5ba46 100644
--- a/src/reflect/scala/reflect/api/Universe.scala
+++ b/src/reflect/scala/reflect/api/Universe.scala
@@ -1,8 +1,6 @@
package scala.reflect
package api
-import language.experimental.macros
-
abstract class Universe extends base.Universe
with Symbols
with Types
@@ -64,5 +62,5 @@ abstract class Universe extends base.Universe
* special measures are taken to ensure that all members accessed in the reifee remain visible
*/
// implementation is magically hardwired to `scala.reflect.reify.Taggers`
- def reify[T](expr: T): Expr[T] = macro ???
+ def reify[T](expr: T): Expr[T] = ??? // macro
} \ No newline at end of file
diff --git a/src/reflect/scala/reflect/makro/Context.scala b/src/reflect/scala/reflect/makro/Context.scala
index f093016a38..f3b1271a57 100644
--- a/src/reflect/scala/reflect/makro/Context.scala
+++ b/src/reflect/scala/reflect/makro/Context.scala
@@ -1,8 +1,6 @@
package scala.reflect
package makro
-import language.experimental.macros
-
// todo. introduce context hierarchy
// the most lightweight context should just expose the stuff from the SIP
// the full context should include all traits from scala.reflect.makro (and probably reside in scala-compiler.jar)
diff --git a/src/reflect/scala/reflect/runtime/package.scala b/src/reflect/scala/reflect/runtime/package.scala
index a5809a2629..2d48b9a5bf 100644
--- a/src/reflect/scala/reflect/runtime/package.scala
+++ b/src/reflect/scala/reflect/runtime/package.scala
@@ -1,7 +1,5 @@
package scala.reflect
-import language.experimental.macros
-
package object runtime {
// type is api.JavaUniverse because we only want to expose the `scala.reflect.api.*` subset of reflection
@@ -9,7 +7,8 @@ package object runtime {
// [Eugene++ to Martin] removed `mirrorOfLoader`, because one can use `universe.runtimeMirror` instead
- def currentMirror: universe.Mirror = macro Macros.currentMirror
+ // implementation magically hardwired to the `currentMirror` method below
+ def currentMirror: universe.Mirror = ??? // macro
}
package runtime {