diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-06-06 09:44:13 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-06-08 15:31:52 +0200 |
commit | bdff66e2730518f449634375b1f3d19689d72b1e (patch) | |
tree | e7911d43c88d0546b18eaed380aa13503141cb9d /src/library | |
parent | 252a44864786b6832b9da4c29d1ac9aad48c4291 (diff) | |
download | scala-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')
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 |