diff options
author | Paul Phillips <paulp@improving.org> | 2011-05-01 18:15:49 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-05-01 18:15:49 +0000 |
commit | f82acf5d370111cb96f39332c28177f186a88f10 (patch) | |
tree | 92b5241f2e01519e5fe26c3b525d8de960793743 /src | |
parent | 445ade0bbd17d8d9336d96fe3804c64e233e8b89 (diff) | |
download | scala-f82acf5d370111cb96f39332c28177f186a88f10.tar.gz scala-f82acf5d370111cb96f39332c28177f186a88f10.tar.bz2 scala-f82acf5d370111cb96f39332c28177f186a88f10.zip |
Reducing the sbt launcher footprint by eliminat...
Reducing the sbt launcher footprint by eliminating val references
which go through the scala package object, since they lead to
otherwise unnecessary classes becoming required at startup. Mostly
this means library files with constructors like "Iterator.empty" or
"Stream.continually" receive a direct import of that companion. The one
slightly less than cosmetic change was moving the strange xml value
"$scope" back into Predef, because otherwise I have to touch the xml
code generation. No review.
Diffstat (limited to 'src')
28 files changed, 55 insertions, 196 deletions
diff --git a/src/library/scala/Array.scala b/src/library/scala/Array.scala index 07cf9e039f..5ff5778800 100644 --- a/src/library/scala/Array.scala +++ b/src/library/scala/Array.scala @@ -6,15 +6,14 @@ ** |/ ** \* */ - - package scala import scala.collection.generic._ -import scala.collection.mutable.{ArrayBuilder, ArraySeq} +import scala.collection.{ mutable, immutable } +import mutable.{ ArrayBuilder, ArraySeq } import compat.Platform.arraycopy import scala.reflect.ClassManifest -import scala.runtime.ScalaRunTime.{array_apply, array_update} +import scala.runtime.ScalaRunTime.{ array_apply, array_update } /** Contains a fallback builder for arrays when the element type * does not have a class manifest. In that case a generic array is built. @@ -372,7 +371,7 @@ object Array extends FallbackArrayBuilding { def range(start: Int, end: Int, step: Int): Array[Int] = { if (step == 0) throw new IllegalArgumentException("zero step") val b = newBuilder[Int] - b.sizeHint(Range.count(start, end, step, false)) + b.sizeHint(immutable.Range.count(start, end, step, false)) var i = start while (if (step < 0) end < i else i < end) { diff --git a/src/library/scala/Option.scala b/src/library/scala/Option.scala index c2b1764fdb..bab3a1c759 100644 --- a/src/library/scala/Option.scala +++ b/src/library/scala/Option.scala @@ -222,7 +222,7 @@ sealed abstract class Option[+A] extends Product with Serializable { * if it is nonempty, or an empty iterator if the option is empty. */ def iterator: Iterator[A] = - if (isEmpty) Iterator.empty else Iterator.single(this.get) + if (isEmpty) collection.Iterator.empty else collection.Iterator.single(this.get) /** Returns a singleton list containing the $option's value * if it is nonempty, or the empty list if the $option is empty. diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala index e03eab45a2..68fdee8411 100644 --- a/src/library/scala/Predef.scala +++ b/src/library/scala/Predef.scala @@ -57,6 +57,9 @@ object Predef extends LowPriorityImplicits { def implicitly[T](implicit e: T) = e // for summoning implicit values from the nether world @inline def locally[T](x: T): T = x // to communicate intent and avoid unmoored statements + // Apparently needed for the xml library + val $scope = scala.xml.TopScope + // Deprecated @deprecated("Use sys.error(message) instead", "2.9.0") @@ -312,7 +315,7 @@ object Predef extends LowPriorityImplicits { implicit def stringCanBuildFrom: CanBuildFrom[String, Char, String] = new CanBuildFrom[String, Char, String] { def apply(from: String) = apply() - def apply() = StringBuilder.newBuilder + def apply() = mutable.StringBuilder.newBuilder } implicit def seqToCharSequence(xs: collection.IndexedSeq[Char]): CharSequence = new CharSequence { diff --git a/src/library/scala/collection/IterableViewLike.scala b/src/library/scala/collection/IterableViewLike.scala index e0f1ada2b8..70f4519204 100644 --- a/src/library/scala/collection/IterableViewLike.scala +++ b/src/library/scala/collection/IterableViewLike.scala @@ -10,6 +10,7 @@ package scala.collection import generic._ import TraversableView.NoBuilder +import immutable.Stream /** A template trait for non-strict views of iterable collections. * $iterableViewInfo diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala index 39c1d5b07f..f7f8e7a971 100644 --- a/src/library/scala/collection/Iterator.scala +++ b/src/library/scala/collection/Iterator.scala @@ -6,12 +6,11 @@ ** |/ ** \* */ - - package scala.collection import mutable.ArrayBuffer import annotation.{ tailrec, migration } +import immutable.Stream /** The `Iterator` object provides various functions for * creating specialized iterators. diff --git a/src/library/scala/collection/SeqLike.scala b/src/library/scala/collection/SeqLike.scala index 0411a2987e..37caf82027 100644 --- a/src/library/scala/collection/SeqLike.scala +++ b/src/library/scala/collection/SeqLike.scala @@ -6,15 +6,14 @@ ** |/ ** \* */ - - package scala.collection -import mutable.{ListBuffer, HashMap, ArraySeq} -import immutable.{List, Range} +import mutable.{ ListBuffer, ArraySeq } +import immutable.{ List, Range } import generic._ import parallel.ParSeq import annotation.bridge +import scala.math.Ordering /** A template trait for sequences of type `Seq[A]` * $seqInfo diff --git a/src/library/scala/collection/immutable/Range.scala b/src/library/scala/collection/immutable/Range.scala index 7bd3764e3e..ef0f08bcfb 100644 --- a/src/library/scala/collection/immutable/Range.scala +++ b/src/library/scala/collection/immutable/Range.scala @@ -287,7 +287,7 @@ object Range { // imprecision or surprises might result from anything, although this may // not yet be fully implemented. object BigDecimal { - implicit val bigDecAsIntegral = scala.Numeric.BigDecimalAsIfIntegral + implicit val bigDecAsIntegral = scala.math.Numeric.BigDecimalAsIfIntegral def apply(start: BigDecimal, end: BigDecimal, step: BigDecimal) = NumericRange(start, end, step) @@ -302,9 +302,9 @@ object Range { // is necessary to keep 0.3d at 0.3 as opposed to // 0.299999999999999988897769753748434595763683319091796875 or so. object Double { - implicit val bigDecAsIntegral = scala.Numeric.BigDecimalAsIfIntegral - implicit val doubleAsIntegral = scala.Numeric.DoubleAsIfIntegral - def toBD(x: Double): BigDecimal = scala.BigDecimal valueOf x + implicit val bigDecAsIntegral = scala.math.Numeric.BigDecimalAsIfIntegral + implicit val doubleAsIntegral = scala.math.Numeric.DoubleAsIfIntegral + def toBD(x: Double): BigDecimal = scala.math.BigDecimal valueOf x def apply(start: Double, end: Double, step: Double) = BigDecimal(toBD(start), toBD(end), toBD(step)) mapRange (_.doubleValue) diff --git a/src/library/scala/collection/mutable/UnrolledBuffer.scala b/src/library/scala/collection/mutable/UnrolledBuffer.scala index 0933aeaf69..9e0b313c4b 100644 --- a/src/library/scala/collection/mutable/UnrolledBuffer.scala +++ b/src/library/scala/collection/mutable/UnrolledBuffer.scala @@ -1,5 +1,6 @@ package scala.collection.mutable +import collection.Iterator import collection.generic._ import annotation.tailrec diff --git a/src/library/scala/collection/parallel/ParIterableView.scala b/src/library/scala/collection/parallel/ParIterableView.scala index 50f0e4f869..2b4f24126b 100644 --- a/src/library/scala/collection/parallel/ParIterableView.scala +++ b/src/library/scala/collection/parallel/ParIterableView.scala @@ -6,20 +6,11 @@ ** |/ ** \* */ - package scala.collection.parallel - - - -import scala.collection.Parallel -import scala.collection.IterableView -import scala.collection.GenIterableView +import scala.collection.{ Parallel, IterableView, GenIterableView, Iterator } import scala.collection.generic.CanCombineFrom - - - /** A template view of a non-strict view of a parallel iterable collection. * * @tparam T the type of elements @@ -33,8 +24,6 @@ extends ParIterableViewLike[T, Coll, CollSeq, ParIterableView[T, Coll, CollSeq], with GenIterableView[T, Coll] - - object ParIterableView { abstract class NoCombiner[T] extends Combiner[T, Nothing] { // self: EnvironmentPassingCombiner[T, Nothing] => @@ -55,14 +44,3 @@ object ParIterableView { def apply() = new NoCombiner[T] {} // was: with EnvironmentPassingCombiner[T, Nothing] } } - - - - - - - - - - - diff --git a/src/library/scala/collection/parallel/ParSeqLike.scala b/src/library/scala/collection/parallel/ParSeqLike.scala index c9e6b45bd6..1d4d8a13ad 100644 --- a/src/library/scala/collection/parallel/ParSeqLike.scala +++ b/src/library/scala/collection/parallel/ParSeqLike.scala @@ -8,12 +8,7 @@ package scala.collection.parallel - -import scala.collection.Parallel -import scala.collection.SeqLike -import scala.collection.GenSeqLike -import scala.collection.GenSeq -import scala.collection.GenIterable +import scala.collection.{ Parallel, SeqLike, GenSeqLike, GenSeq, GenIterable, Iterator } import scala.collection.generic.DefaultSignalling import scala.collection.generic.AtomicIndexFlag import scala.collection.generic.CanBuildFrom @@ -500,41 +495,4 @@ self => override def merge(that: Corresponds[S]) = result = result && that.result override def requiresStrictSplitters = true } - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/library/scala/collection/parallel/ParSeqView.scala b/src/library/scala/collection/parallel/ParSeqView.scala index 8461390839..a08b9a4acb 100644 --- a/src/library/scala/collection/parallel/ParSeqView.scala +++ b/src/library/scala/collection/parallel/ParSeqView.scala @@ -9,18 +9,9 @@ package scala.collection.parallel - - - -import scala.collection.TraversableView -import scala.collection.SeqView -import scala.collection.Parallel +import scala.collection.{ TraversableView, SeqView, Parallel, Iterator } import scala.collection.generic.CanCombineFrom - - - - /** A template view of a non-strict view of a parallel sequence. * * @tparam T the type of elements in this parallel sequence @@ -33,7 +24,6 @@ trait ParSeqView[+T, +Coll <: Parallel, +CollSeq] extends ParSeqViewLike[T, Coll, CollSeq, ParSeqView[T, Coll, CollSeq], SeqView[T, CollSeq]] - object ParSeqView { abstract class NoCombiner[T] extends Combiner[T, Nothing] { // self: EnvironmentPassingCombiner[T, Nothing] => @@ -54,21 +44,3 @@ object ParSeqView { def apply() = new NoCombiner[T] {} // was: with EnvironmentPassingCombiner[T, Nothing] } } - - - - - - - - - - - - - - - - - - diff --git a/src/library/scala/collection/parallel/ParSeqViewLike.scala b/src/library/scala/collection/parallel/ParSeqViewLike.scala index b7ad227f11..0da6f413d9 100644 --- a/src/library/scala/collection/parallel/ParSeqViewLike.scala +++ b/src/library/scala/collection/parallel/ParSeqViewLike.scala @@ -8,17 +8,13 @@ package scala.collection.parallel -import scala.collection.Parallel -import scala.collection.{ SeqView, SeqViewLike } -import scala.collection.{ GenSeqView, GenSeqViewLike } -import scala.collection.GenSeq -import scala.collection.GenIterable -import scala.collection.GenTraversable -import scala.collection.GenTraversableOnce +import scala.collection.{ Parallel, SeqView, SeqViewLike, GenSeqView, GenSeqViewLike, GenSeq } +import scala.collection.{ GenIterable, GenTraversable, GenTraversableOnce, Iterator } import scala.collection.generic.{ CanBuildFrom, SliceInterval } import scala.collection.generic.CanCombineFrom import scala.collection.parallel.immutable.ParRange + /** A template view of a non-strict view of parallel sequence. * * @tparam T the type of the elements in this view @@ -183,25 +179,4 @@ self => protected[this] def newSubtask(p: SuperParIterator) = new Force(cbf, down(p)) override def merge(that: Force[U, That]) = result = result combine that.result } - } - - - - - - - - - - - - - - - - - - - - diff --git a/src/library/scala/collection/parallel/Splitter.scala b/src/library/scala/collection/parallel/Splitter.scala index 568a7c8e0d..ee10ea77c7 100644 --- a/src/library/scala/collection/parallel/Splitter.scala +++ b/src/library/scala/collection/parallel/Splitter.scala @@ -8,9 +8,7 @@ package scala.collection.parallel - -import scala.collection.Seq - +import scala.collection.{ Seq, Iterator } /** A splitter (or a split iterator) can be split into more splitters that traverse over * disjoint subsets of elements. @@ -49,10 +47,8 @@ trait Splitter[+T] extends Iterator[T] { * The rationale behind this is best given by the following example: * try splitting an iterator over a linear hash table. */ - } - object Splitter { def empty[T]: Splitter[T] = new Splitter[T] { def hasNext = false @@ -60,5 +56,3 @@ object Splitter { def split = Seq(this) } } - - diff --git a/src/library/scala/collection/parallel/immutable/ParRange.scala b/src/library/scala/collection/parallel/immutable/ParRange.scala index 198274f4e2..2a10458457 100644 --- a/src/library/scala/collection/parallel/immutable/ParRange.scala +++ b/src/library/scala/collection/parallel/immutable/ParRange.scala @@ -6,17 +6,13 @@ ** |/ ** \* */ - package scala.collection.parallel.immutable - - import scala.collection.immutable.Range import scala.collection.parallel.Combiner import scala.collection.generic.CanCombineFrom import scala.collection.parallel.IterableSplitter - - +import scala.collection.Iterator /** Parallel ranges. * @@ -111,18 +107,11 @@ self => cb } } - } - object ParRange { def apply(start: Int, end: Int, step: Int, inclusive: Boolean) = new ParRange( if (inclusive) new Range.Inclusive(start, end, step) else new Range(start, end, step) ) } - - - - - diff --git a/src/library/scala/io/BufferedSource.scala b/src/library/scala/io/BufferedSource.scala index 5df52d45e3..fafb57da55 100644 --- a/src/library/scala/io/BufferedSource.scala +++ b/src/library/scala/io/BufferedSource.scala @@ -10,6 +10,7 @@ package scala.io import java.io.{ InputStream, BufferedReader, InputStreamReader } import Source.DefaultBufSize +import scala.collection.Iterator /** This object provides convenience methods to create an iterable * representation of a source file. diff --git a/src/library/scala/package.scala b/src/library/scala/package.scala index 0e966acd6b..5c9f9b7dd8 100644 --- a/src/library/scala/package.scala +++ b/src/library/scala/package.scala @@ -72,9 +72,6 @@ package object scala { val Range = scala.collection.immutable.Range // Migrated from Predef - - val $scope = scala.xml.TopScope - @deprecated("Use Thread.currentThread instead", "2.9.0") def currentThread = java.lang.Thread.currentThread() diff --git a/src/library/scala/runtime/RichBoolean.scala b/src/library/scala/runtime/RichBoolean.scala index 5be4e07f2f..d44868708d 100644 --- a/src/library/scala/runtime/RichBoolean.scala +++ b/src/library/scala/runtime/RichBoolean.scala @@ -6,10 +6,8 @@ ** |/ ** \* */ - - package scala.runtime final class RichBoolean(val self: Boolean) extends OrderedProxy[Boolean] { - protected val ord = Ordering[Boolean] + protected val ord = math.Ordering[Boolean] } diff --git a/src/library/scala/sys/SystemProperties.scala b/src/library/scala/sys/SystemProperties.scala index 296db9e469..25fd6e53a8 100644 --- a/src/library/scala/sys/SystemProperties.scala +++ b/src/library/scala/sys/SystemProperties.scala @@ -8,7 +8,7 @@ package scala.sys -import scala.collection.mutable +import scala.collection.{ mutable, Iterator } import scala.collection.JavaConverters._ import java.security.AccessControlException diff --git a/src/library/scala/sys/process/BasicIO.scala b/src/library/scala/sys/process/BasicIO.scala index 88e66afc91..6adce06f36 100644 --- a/src/library/scala/sys/process/BasicIO.scala +++ b/src/library/scala/sys/process/BasicIO.scala @@ -12,6 +12,7 @@ package process import processInternal._ import java.io.{ BufferedReader, InputStreamReader, FilterInputStream, FilterOutputStream } import java.util.concurrent.LinkedBlockingQueue +import scala.collection.immutable.Stream object BasicIO { final val BufferSize = 8192 diff --git a/src/library/scala/util/MurmurHash.scala b/src/library/scala/util/MurmurHash.scala index f1f6e08254..71db2536be 100644 --- a/src/library/scala/util/MurmurHash.scala +++ b/src/library/scala/util/MurmurHash.scala @@ -20,6 +20,7 @@ package scala.util */ import java.lang.Integer.{ rotateLeft => rotl } +import scala.collection.Iterator /** A class designed to generate well-distributed non-cryptographic * hashes. It is designed to be passed to a collection's foreach method, diff --git a/src/library/scala/util/Random.scala b/src/library/scala/util/Random.scala index f3d1397075..cfd6154874 100644 --- a/src/library/scala/util/Random.scala +++ b/src/library/scala/util/Random.scala @@ -6,20 +6,17 @@ ** |/ ** \* */ - - package scala.util -import collection.immutable.List +import collection.mutable.ArrayBuffer +import collection.generic.CanBuildFrom +import scala.collection.immutable.{ List, Stream } /** * @author Stephane Micheloud * */ class Random(val self: java.util.Random) { - import collection.mutable.ArrayBuffer - import collection.generic.CanBuildFrom - /** Creates a new random number generator using a single long seed. */ def this(seed: Long) = this(new java.util.Random(seed)) diff --git a/src/library/scala/util/Sorting.scala b/src/library/scala/util/Sorting.scala index e687335b65..f286670f25 100644 --- a/src/library/scala/util/Sorting.scala +++ b/src/library/scala/util/Sorting.scala @@ -9,6 +9,7 @@ package scala.util import scala.reflect.ClassManifest +import scala.math.Ordering /** The Sorting object provides functions that can sort various kinds of * objects. You can provide a comparison function, or you can request a sort diff --git a/src/library/scala/xml/MetaData.scala b/src/library/scala/xml/MetaData.scala index 2e55a9d67e..e3e025cf59 100644 --- a/src/library/scala/xml/MetaData.scala +++ b/src/library/scala/xml/MetaData.scala @@ -11,7 +11,7 @@ package scala.xml import Utility.sbToString import annotation.tailrec - +import scala.collection.Iterator /** * Copyright 2008 Google Inc. All Rights Reserved. diff --git a/src/library/scala/xml/Null.scala b/src/library/scala/xml/Null.scala index 7769ddf0df..0b527c91bd 100644 --- a/src/library/scala/xml/Null.scala +++ b/src/library/scala/xml/Null.scala @@ -11,6 +11,7 @@ package scala.xml import Utility.{ isNameStart } +import scala.collection.Iterator /** Essentially, every method in here is a dummy, returning Zero[T]. * It provides a backstop for the unusual collection defined by MetaData, diff --git a/src/library/scala/xml/parsing/FactoryAdapter.scala b/src/library/scala/xml/parsing/FactoryAdapter.scala index f2dc191063..67e06ff5ca 100644 --- a/src/library/scala/xml/parsing/FactoryAdapter.scala +++ b/src/library/scala/xml/parsing/FactoryAdapter.scala @@ -6,20 +6,16 @@ ** |/ ** \* */ - - package scala.xml package parsing import java.io.{ InputStream, Reader, File, FileDescriptor, FileInputStream } -import collection.mutable.Stack - +import scala.collection.{ mutable, Iterator } import org.xml.sax.Attributes import org.xml.sax.helpers.DefaultHandler // can be mixed into FactoryAdapter if desired -trait ConsoleErrorHandler extends DefaultHandler -{ +trait ConsoleErrorHandler extends DefaultHandler { // ignore warning, crimson warns even for entity resolution! override def warning(ex: SAXParseException): Unit = { } override def error(ex: SAXParseException): Unit = printError("Error", ex) @@ -38,15 +34,14 @@ trait ConsoleErrorHandler extends DefaultHandler * namespace bindings, without relying on namespace handling of the * underlying SAX parser. */ -abstract class FactoryAdapter extends DefaultHandler with factory.XMLLoader[Node] -{ +abstract class FactoryAdapter extends DefaultHandler with factory.XMLLoader[Node] { var rootElem: Node = null val buffer = new StringBuilder() - val attribStack = new Stack[MetaData] - val hStack = new Stack[Node] // [ element ] contains siblings - val tagStack = new Stack[String] - var scopeStack = new Stack[NamespaceBinding] + val attribStack = new mutable.Stack[MetaData] + val hStack = new mutable.Stack[Node] // [ element ] contains siblings + val tagStack = new mutable.Stack[String] + var scopeStack = new mutable.Stack[NamespaceBinding] var curTag : String = null var capture: Boolean = false diff --git a/src/library/scala/xml/persistent/CachedFileStorage.scala b/src/library/scala/xml/persistent/CachedFileStorage.scala index 1f355e29f1..bcdd1a3f2d 100644 --- a/src/library/scala/xml/persistent/CachedFileStorage.scala +++ b/src/library/scala/xml/persistent/CachedFileStorage.scala @@ -10,9 +10,12 @@ package scala.xml package persistent -import java.io.{File, FileOutputStream} +import java.io.{ File, FileOutputStream } import java.nio.ByteBuffer import java.nio.channels.Channels +import java.lang.Thread +import scala.util.logging.Logged +import scala.collection.Iterator /** <p> * Mutable storage of immutable xml trees. Everything is kept in memory, @@ -24,8 +27,7 @@ import java.nio.channels.Channels * * @author Burak Emir */ -abstract class CachedFileStorage(private val file1: File) -extends java.lang.Thread with scala.util.logging.Logged { +abstract class CachedFileStorage(private val file1: File) extends Thread with Logged { private val file2 = new File(file1.getParent, file1.getName+"$") diff --git a/src/library/scala/xml/pull/XMLEventReader.scala b/src/library/scala/xml/pull/XMLEventReader.scala index 2ffceab1b0..51a2fda6aa 100755 --- a/src/library/scala/xml/pull/XMLEventReader.scala +++ b/src/library/scala/xml/pull/XMLEventReader.scala @@ -6,14 +6,13 @@ ** |/ ** \* */ - package scala.xml package pull +import scala.io.Source +import java.lang.Thread import java.util.concurrent.LinkedBlockingQueue import java.nio.channels.ClosedChannelException - -import scala.io.Source import scala.xml.parsing.{ ExternalSources, MarkupHandler, MarkupParser } /** @@ -104,8 +103,7 @@ class XMLEventReader(src: Source) extends ProducerConsumerIterator[XMLEvent] { // the next call hasNext is guaranteed not to block. // // This is not thread-safe for multiple consumers! -trait ProducerConsumerIterator[T >: Null] extends Iterator[T] -{ +trait ProducerConsumerIterator[T >: Null] extends Iterator[T] { // abstract - iterator-specific distinguished object for marking eos val EndOfStream: T diff --git a/src/swing/scala/swing/BufferWrapper.scala b/src/swing/scala/swing/BufferWrapper.scala index 6f3adf08e0..04fb25f0b1 100644 --- a/src/swing/scala/swing/BufferWrapper.scala +++ b/src/swing/scala/swing/BufferWrapper.scala @@ -6,11 +6,10 @@ ** |/ ** \* */ - - package scala.swing import scala.collection.mutable.Buffer +import scala.collection.Iterator /** * Default partial implementation for buffer adapters. @@ -21,7 +20,7 @@ protected[swing] abstract class BufferWrapper[A] extends Buffer[A] { outer => remove(n) insertAt(n, a) } - def insertAll(n: Int, elems: scala.collection.Traversable[A]) { + def insertAll(n: Int, elems: Traversable[A]) { var i = n for (el <- elems) { insertAt(i, el) |