summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-06-06 09:44:13 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-06-08 15:31:52 +0200
commitbdff66e2730518f449634375b1f3d19689d72b1e (patch)
treee7911d43c88d0546b18eaed380aa13503141cb9d /src/library
parent252a44864786b6832b9da4c29d1ac9aad48c4291 (diff)
downloadscala-bdff66e2730518f449634375b1f3d19689d72b1e.tar.gz
scala-bdff66e2730518f449634375b1f3d19689d72b1e.tar.bz2
scala-bdff66e2730518f449634375b1f3d19689d72b1e.zip
removes tags and their incantations from Predef
All tags and reflection-related stuff requires a prefix, be it scala.reflect for simple tags (ArrayTags and ClassTags), or scala.reflect.basis/scala.reflect.runtime.universe for type tags.
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/Predef.scala18
-rw-r--r--src/library/scala/collection/GenTraversableOnce.scala2
-rw-r--r--src/library/scala/collection/TraversableOnce.scala1
-rw-r--r--src/library/scala/collection/TraversableProxyLike.scala1
-rw-r--r--src/library/scala/collection/generic/ArrayTagTraversableFactory.scala1
-rw-r--r--src/library/scala/collection/generic/GenericArrayTagCompanion.scala1
-rw-r--r--src/library/scala/collection/generic/GenericArrayTagTraversableTemplate.scala1
-rw-r--r--src/library/scala/collection/generic/TraversableForwarder.scala1
-rw-r--r--src/library/scala/collection/immutable/PagedSeq.scala1
-rw-r--r--src/library/scala/collection/immutable/StringLike.scala1
-rw-r--r--src/library/scala/collection/mutable/ArrayOps.scala2
-rw-r--r--src/library/scala/collection/mutable/ArrayStack.scala1
-rw-r--r--src/library/scala/collection/mutable/UnrolledBuffer.scala1
-rw-r--r--src/library/scala/collection/mutable/WrappedArray.scala2
-rw-r--r--src/library/scala/collection/parallel/ParIterableLike.scala1
-rw-r--r--src/library/scala/collection/parallel/mutable/ParArray.scala2
-rw-r--r--src/library/scala/collection/parallel/mutable/UnrolledParArrayCombiner.scala2
-rw-r--r--src/library/scala/concurrent/Future.scala1
-rw-r--r--src/library/scala/reflect/makro/Universe.scala2
-rw-r--r--src/library/scala/reflect/makro/internal/package.scala1
-rw-r--r--src/library/scala/reflect/package.scala5
-rw-r--r--src/library/scala/runtime/ScalaRunTime.scala1
-rw-r--r--src/library/scala/util/Sorting.scala2
-rw-r--r--src/library/scala/util/control/Exception.scala1
24 files changed, 28 insertions, 24 deletions
diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala
index a6477f1709..65e8549ae1 100644
--- a/src/library/scala/Predef.scala
+++ b/src/library/scala/Predef.scala
@@ -111,24 +111,6 @@ object Predef extends LowPriorityImplicits {
def classManifest[T](implicit m: ClassManifest[T]) = m
def optManifest[T](implicit m: OptManifest[T]) = m
- // Tag types and companions, and incantations for summoning
- type ArrayTag[T] = scala.reflect.ArrayTag[T]
- type ClassTag[T] = scala.reflect.ClassTag[T]
- type TypeTag[T] = scala.reflect.TypeTag[T]
- type ConcreteTypeTag[T] = scala.reflect.ConcreteTypeTag[T]
- val ClassTag = scala.reflect.ClassTag // doesn't need to be lazy, because it's not a path-dependent type
- // [Paul to Eugene] No lazy vals in Predef. Too expensive. Have to work harder on breaking initialization dependencies.
- lazy val TypeTag = scala.reflect.TypeTag // needs to be lazy, because requires scala.reflect.mirror instance
- lazy val ConcreteTypeTag = scala.reflect.ConcreteTypeTag
-
- // [Eugene to Martin] it's really tedious to type "implicitly[...]" all the time, so I'm reintroducing these shortcuts
- def arrayTag[T](implicit atag: ArrayTag[T]) = atag
- def classTag[T](implicit ctag: ClassTag[T]) = ctag
- def tag[T](implicit ttag: TypeTag[T]) = ttag
- def typeTag[T](implicit ttag: TypeTag[T]) = ttag
- def concreteTag[T](implicit cttag: ConcreteTypeTag[T]) = cttag
- def concreteTypeTag[T](implicit cttag: ConcreteTypeTag[T]) = cttag
-
// Minor variations on identity functions
def identity[A](x: A): A = x // @see `conforms` for the implicit version
@inline def implicitly[T](implicit e: T) = e // for summoning implicit values from the nether world -- TODO: when dependent method types are on by default, give this result type `e.type`, so that inliner has better chance of knowing which method to inline in calls like `implicitly[MatchingStrategy[Option]].zero`
diff --git a/src/library/scala/collection/GenTraversableOnce.scala b/src/library/scala/collection/GenTraversableOnce.scala
index eab6b84ea8..8855c7f783 100644
--- a/src/library/scala/collection/GenTraversableOnce.scala
+++ b/src/library/scala/collection/GenTraversableOnce.scala
@@ -8,6 +8,8 @@
package scala.collection
+import scala.reflect.ArrayTag
+
/** A template trait for all traversable-once objects which may be
* traversed in parallel.
*
diff --git a/src/library/scala/collection/TraversableOnce.scala b/src/library/scala/collection/TraversableOnce.scala
index d42c037dee..4275be949e 100644
--- a/src/library/scala/collection/TraversableOnce.scala
+++ b/src/library/scala/collection/TraversableOnce.scala
@@ -11,6 +11,7 @@ package scala.collection
import mutable.{ Buffer, Builder, ListBuffer, ArrayBuffer }
import annotation.unchecked.{ uncheckedVariance => uV }
import language.{implicitConversions, higherKinds}
+import reflect.ArrayTag
/** A template trait for collections which can be traversed either once only
* or one or more times.
diff --git a/src/library/scala/collection/TraversableProxyLike.scala b/src/library/scala/collection/TraversableProxyLike.scala
index 20880e369d..afc9452294 100644
--- a/src/library/scala/collection/TraversableProxyLike.scala
+++ b/src/library/scala/collection/TraversableProxyLike.scala
@@ -12,6 +12,7 @@ package scala.collection
import generic._
import mutable.{Buffer, StringBuilder}
+import reflect.ArrayTag
// Methods could be printed by cat TraversableLike.scala | egrep '^ (override )?def'
diff --git a/src/library/scala/collection/generic/ArrayTagTraversableFactory.scala b/src/library/scala/collection/generic/ArrayTagTraversableFactory.scala
index ddae0a4d64..bcd73c1eb8 100644
--- a/src/library/scala/collection/generic/ArrayTagTraversableFactory.scala
+++ b/src/library/scala/collection/generic/ArrayTagTraversableFactory.scala
@@ -10,6 +10,7 @@ package scala.collection
package generic
import language.higherKinds
+import reflect.ArrayTag
/** A template for companion objects of `ClassTagTraversable` and
* subclasses thereof.
diff --git a/src/library/scala/collection/generic/GenericArrayTagCompanion.scala b/src/library/scala/collection/generic/GenericArrayTagCompanion.scala
index 959adbce6d..5c825ebfef 100644
--- a/src/library/scala/collection/generic/GenericArrayTagCompanion.scala
+++ b/src/library/scala/collection/generic/GenericArrayTagCompanion.scala
@@ -11,6 +11,7 @@ package generic
import mutable.Builder
import language.higherKinds
+import reflect.ArrayTag
/** This class represents companions of classes which require ArrayTags
* for their element types.
diff --git a/src/library/scala/collection/generic/GenericArrayTagTraversableTemplate.scala b/src/library/scala/collection/generic/GenericArrayTagTraversableTemplate.scala
index ac84683c59..88f0b25929 100644
--- a/src/library/scala/collection/generic/GenericArrayTagTraversableTemplate.scala
+++ b/src/library/scala/collection/generic/GenericArrayTagTraversableTemplate.scala
@@ -12,6 +12,7 @@ package generic
import mutable.Builder
import annotation.unchecked.uncheckedVariance
import language.higherKinds
+import reflect.ArrayTag
/** This trait represents collections classes which require array
* tags for their element types.
diff --git a/src/library/scala/collection/generic/TraversableForwarder.scala b/src/library/scala/collection/generic/TraversableForwarder.scala
index 3d5bc2704f..86a202f28c 100644
--- a/src/library/scala/collection/generic/TraversableForwarder.scala
+++ b/src/library/scala/collection/generic/TraversableForwarder.scala
@@ -11,6 +11,7 @@ package scala.collection.generic
import scala.collection._
import mutable.{ Buffer, StringBuilder }
import immutable.{ List, Stream }
+import reflect.ArrayTag
/** This trait implements a forwarder for traversable objects. It forwards
* all calls to a different traversable, except for:
diff --git a/src/library/scala/collection/immutable/PagedSeq.scala b/src/library/scala/collection/immutable/PagedSeq.scala
index 94953ce38b..ac6da23068 100644
--- a/src/library/scala/collection/immutable/PagedSeq.scala
+++ b/src/library/scala/collection/immutable/PagedSeq.scala
@@ -13,6 +13,7 @@ package immutable
import java.io._
import scala.util.matching.Regex
+import reflect.ArrayTag
/** The `PagedSeq` object defines a lazy implementations of
* a random access sequence.
diff --git a/src/library/scala/collection/immutable/StringLike.scala b/src/library/scala/collection/immutable/StringLike.scala
index e41b17a5e8..9b6377e979 100644
--- a/src/library/scala/collection/immutable/StringLike.scala
+++ b/src/library/scala/collection/immutable/StringLike.scala
@@ -13,6 +13,7 @@ import generic._
import mutable.Builder
import scala.util.matching.Regex
import scala.math.ScalaNumber
+import reflect.ArrayTag
/** A companion object for the `StringLike` containing some constants.
* @since 2.8
diff --git a/src/library/scala/collection/mutable/ArrayOps.scala b/src/library/scala/collection/mutable/ArrayOps.scala
index 0807721f7d..787b8ac228 100644
--- a/src/library/scala/collection/mutable/ArrayOps.scala
+++ b/src/library/scala/collection/mutable/ArrayOps.scala
@@ -12,7 +12,7 @@ package scala.collection
package mutable
import compat.Platform.arraycopy
-import scala.reflect.ArrayTag
+import scala.reflect.{ArrayTag, ClassTag}
import scala.runtime.ScalaRunTime._
import parallel.mutable.ParArray
diff --git a/src/library/scala/collection/mutable/ArrayStack.scala b/src/library/scala/collection/mutable/ArrayStack.scala
index ed5f39f21b..7870a8f053 100644
--- a/src/library/scala/collection/mutable/ArrayStack.scala
+++ b/src/library/scala/collection/mutable/ArrayStack.scala
@@ -10,6 +10,7 @@ package scala.collection
package mutable
import generic._
+import reflect.ArrayTag
/** Factory object for the `ArrayStack` class.
*
diff --git a/src/library/scala/collection/mutable/UnrolledBuffer.scala b/src/library/scala/collection/mutable/UnrolledBuffer.scala
index 0c2e6e1cae..9ef34e67e6 100644
--- a/src/library/scala/collection/mutable/UnrolledBuffer.scala
+++ b/src/library/scala/collection/mutable/UnrolledBuffer.scala
@@ -12,6 +12,7 @@ import collection.AbstractIterator
import collection.Iterator
import collection.generic._
import annotation.tailrec
+import reflect.ArrayTag
/** A buffer that stores elements in an unrolled linked list.
*
diff --git a/src/library/scala/collection/mutable/WrappedArray.scala b/src/library/scala/collection/mutable/WrappedArray.scala
index 86317819a1..789ccc2d98 100644
--- a/src/library/scala/collection/mutable/WrappedArray.scala
+++ b/src/library/scala/collection/mutable/WrappedArray.scala
@@ -11,7 +11,7 @@
package scala.collection
package mutable
-import scala.reflect.ArrayTag
+import scala.reflect.{ArrayTag, ClassTag}
import scala.runtime.ScalaRunTime._
import scala.collection.generic._
import scala.collection.parallel.mutable.ParArray
diff --git a/src/library/scala/collection/parallel/ParIterableLike.scala b/src/library/scala/collection/parallel/ParIterableLike.scala
index c1d0e9c3a6..0b2a0ec5bb 100644
--- a/src/library/scala/collection/parallel/ParIterableLike.scala
+++ b/src/library/scala/collection/parallel/ParIterableLike.scala
@@ -24,6 +24,7 @@ import scala.collection.GenIterable
import scala.collection.GenTraversableOnce
import scala.collection.GenTraversable
import immutable.HashMapCombiner
+import reflect.{ArrayTag, ClassTag}
import java.util.concurrent.atomic.AtomicBoolean
diff --git a/src/library/scala/collection/parallel/mutable/ParArray.scala b/src/library/scala/collection/parallel/mutable/ParArray.scala
index 29d84408db..e61eab2072 100644
--- a/src/library/scala/collection/parallel/mutable/ParArray.scala
+++ b/src/library/scala/collection/parallel/mutable/ParArray.scala
@@ -26,7 +26,7 @@ import scala.collection.parallel.CHECK_RATE
import scala.collection.mutable.ArraySeq
import scala.collection.mutable.Builder
import scala.collection.GenTraversableOnce
-
+import scala.reflect.ArrayTag
diff --git a/src/library/scala/collection/parallel/mutable/UnrolledParArrayCombiner.scala b/src/library/scala/collection/parallel/mutable/UnrolledParArrayCombiner.scala
index 43d40776bf..42c015e0b4 100644
--- a/src/library/scala/collection/parallel/mutable/UnrolledParArrayCombiner.scala
+++ b/src/library/scala/collection/parallel/mutable/UnrolledParArrayCombiner.scala
@@ -21,7 +21,7 @@ import scala.collection.parallel.TaskSupport
import scala.collection.parallel.unsupportedop
import scala.collection.parallel.Combiner
import scala.collection.parallel.Task
-
+import scala.reflect.ArrayTag
diff --git a/src/library/scala/concurrent/Future.scala b/src/library/scala/concurrent/Future.scala
index 375659bedc..2a52d0ac0b 100644
--- a/src/library/scala/concurrent/Future.scala
+++ b/src/library/scala/concurrent/Future.scala
@@ -25,6 +25,7 @@ import scala.annotation.tailrec
import scala.collection.mutable.Stack
import scala.collection.mutable.Builder
import scala.collection.generic.CanBuildFrom
+import scala.reflect.ClassTag
import language.higherKinds
diff --git a/src/library/scala/reflect/makro/Universe.scala b/src/library/scala/reflect/makro/Universe.scala
index d970e2474e..45bce08718 100644
--- a/src/library/scala/reflect/makro/Universe.scala
+++ b/src/library/scala/reflect/makro/Universe.scala
@@ -88,7 +88,7 @@ abstract class Universe extends scala.reflect.api.Universe {
def addAttachment(attachment: Any): this.type
/** ... */
- def removeAttachment[T: ClassTag]: this.type
+ def removeAttachment[T: scala.reflect.ClassTag]: this.type
}
override type SymTree >: Null <: Tree with SymTreeContextApi
diff --git a/src/library/scala/reflect/makro/internal/package.scala b/src/library/scala/reflect/makro/internal/package.scala
index c0518384ab..51425696f9 100644
--- a/src/library/scala/reflect/makro/internal/package.scala
+++ b/src/library/scala/reflect/makro/internal/package.scala
@@ -2,6 +2,7 @@ package scala.reflect.makro
import language.experimental.macros
import scala.reflect.base.{Universe => BaseUniverse}
+import scala.reflect.{ClassTag, ArrayTag}
// anchors for materialization macros emitted during tag materialization in Implicits.scala
// implementation is magically hardwired into `scala.reflect.reify.Taggers`
diff --git a/src/library/scala/reflect/package.scala b/src/library/scala/reflect/package.scala
index ba93a1c91f..447d509292 100644
--- a/src/library/scala/reflect/package.scala
+++ b/src/library/scala/reflect/package.scala
@@ -21,6 +21,11 @@ package object reflect extends reflect_compat {
// ArrayTag trait is defined outside the basis
// ClassTag class is defined outside the basis
+ def arrayTag[T](implicit atag: ArrayTag[T]) = atag
+ def classTag[T](implicit ctag: ClassTag[T]) = ctag
+ // typeTag incantation is defined inside the basis
+ // concreteTypeTag incantation is defined inside the basis
+
type TypeTag[T] = scala.reflect.basis.TypeTag[T]
type ConcreteTypeTag[T] = scala.reflect.basis.ConcreteTypeTag[T]
diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala
index e3d3c89aa6..5715ed2719 100644
--- a/src/library/scala/runtime/ScalaRunTime.scala
+++ b/src/library/scala/runtime/ScalaRunTime.scala
@@ -12,6 +12,7 @@ import scala.collection.{ Seq, IndexedSeq, TraversableView, AbstractIterator }
import scala.collection.mutable.WrappedArray
import scala.collection.immutable.{ StringLike, NumericRange, List, Stream, Nil, :: }
import scala.collection.generic.{ Sorted }
+import scala.reflect.{ ArrayTag, ClassTag, arrayTag, classTag }
import scala.util.control.ControlThrowable
import scala.xml.{ Node, MetaData }
diff --git a/src/library/scala/util/Sorting.scala b/src/library/scala/util/Sorting.scala
index 7d98e57741..2e4709a7f8 100644
--- a/src/library/scala/util/Sorting.scala
+++ b/src/library/scala/util/Sorting.scala
@@ -8,7 +8,7 @@
package scala.util
-import scala.reflect.ClassTag
+import scala.reflect.{ ArrayTag, ClassTag }
import scala.math.Ordering
/** The Sorting object provides functions that can sort various kinds of
diff --git a/src/library/scala/util/control/Exception.scala b/src/library/scala/util/control/Exception.scala
index 466118f85b..2ee053c92b 100644
--- a/src/library/scala/util/control/Exception.scala
+++ b/src/library/scala/util/control/Exception.scala
@@ -9,6 +9,7 @@
package scala.util.control
import collection.immutable.List
+import reflect.{ ClassTag, classTag }
import java.lang.reflect.InvocationTargetException
import language.implicitConversions