summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-10-28 23:04:03 +0000
committerMartin Odersky <odersky@gmail.com>2009-10-28 23:04:03 +0000
commit9a9fece5c40f0a8198f74b37f74d4953a7bda781 (patch)
tree465f5bb13476f4016aee9f2d2771afef9ffff07a /src
parentb4084fc9c0c00c159245a6c18230ba6d60bab4af (diff)
downloadscala-9a9fece5c40f0a8198f74b37f74d4953a7bda781.tar.gz
scala-9a9fece5c40f0a8198f74b37f74d4953a7bda781.tar.bz2
scala-9a9fece5c40f0a8198f74b37f74d4953a7bda781.zip
changed standard library so that it does not re...
changed standard library so that it does not rely in scala package object in initial bootstrap of Predef. Disabled reading scala package during that bootstrap. This is an attempt to solve the cyclic reference errors in #2501.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala7
-rw-r--r--src/library/scala/BigDecimal.scala2
-rw-r--r--src/library/scala/BigInt.scala1
-rw-r--r--src/library/scala/Console.scala3
-rw-r--r--src/library/scala/CountedIterator.scala2
-rw-r--r--src/library/scala/Either.scala3
-rw-r--r--src/library/scala/Enumeration.scala2
-rw-r--r--src/library/scala/Option.scala2
-rw-r--r--src/library/scala/Ordering.scala1
-rw-r--r--src/library/scala/Product.scala2
-rw-r--r--src/library/scala/Zero.scala3
-rw-r--r--src/library/scala/collection/BitSetLike.scala1
-rw-r--r--src/library/scala/collection/IterableLike.scala1
-rw-r--r--src/library/scala/collection/IterableViewLike.scala1
-rw-r--r--src/library/scala/collection/Iterator.scala3
-rw-r--r--src/library/scala/collection/LinearSeqLike.scala1
-rw-r--r--src/library/scala/collection/MapLike.scala2
-rw-r--r--src/library/scala/collection/SeqLike.scala3
-rw-r--r--src/library/scala/collection/TraversableLike.scala3
-rw-r--r--src/library/scala/collection/TraversableProxyLike.scala2
-rw-r--r--src/library/scala/collection/generic/SeqForwarder.scala1
-rw-r--r--src/library/scala/collection/generic/TraversableForwarder.scala3
-rw-r--r--src/library/scala/collection/immutable/Stream.scala2
-rw-r--r--src/library/scala/collection/immutable/StringOps.scala2
-rw-r--r--src/library/scala/collection/immutable/WrappedString.scala2
-rw-r--r--src/library/scala/collection/mutable/LazyBuilder.scala2
-rw-r--r--src/library/scala/collection/mutable/ListBuffer.scala1
-rw-r--r--src/library/scala/collection/mutable/MutableList.scala1
-rw-r--r--src/library/scala/collection/mutable/Stack.scala2
-rw-r--r--src/library/scala/reflect/ClassManifest.scala2
-rw-r--r--src/library/scala/reflect/Manifest.scala1
-rw-r--r--src/library/scala/reflect/Tree.scala2
-rw-r--r--src/library/scala/reflect/Type.scala1
-rw-r--r--src/library/scala/runtime/RichDouble.scala2
-rw-r--r--src/library/scala/runtime/RichLong.scala2
-rw-r--r--src/library/scala/runtime/ScalaRunTime.scala1
-rw-r--r--src/library/scala/util/Random.scala2
-rw-r--r--src/library/scala/util/automata/BaseBerrySethi.scala2
-rw-r--r--src/library/scala/util/automata/NondetWordAutom.scala2
-rw-r--r--src/library/scala/util/automata/WordBerrySethi.scala3
-rw-r--r--src/library/scala/util/control/Exception.scala2
-rw-r--r--src/library/scala/util/matching/Regex.scala2
-rw-r--r--src/library/scala/xml/Atom.scala1
-rw-r--r--src/library/scala/xml/Attribute.scala4
-rw-r--r--src/library/scala/xml/Comment.scala1
-rw-r--r--src/library/scala/xml/Elem.scala2
-rw-r--r--src/library/scala/xml/EntityRef.scala2
-rw-r--r--src/library/scala/xml/Group.scala1
-rw-r--r--src/library/scala/xml/MetaData.scala4
-rw-r--r--src/library/scala/xml/NamespaceBinding.scala1
-rw-r--r--src/library/scala/xml/Node.scala4
-rw-r--r--src/library/scala/xml/NodeBuffer.scala2
-rw-r--r--src/library/scala/xml/NodeSeq.scala3
-rw-r--r--src/library/scala/xml/Null.scala3
-rw-r--r--src/library/scala/xml/PrefixedAttribute.scala4
-rw-r--r--src/library/scala/xml/ProcInstr.scala1
-rw-r--r--src/library/scala/xml/SpecialNode.scala3
-rw-r--r--src/library/scala/xml/Text.scala2
-rw-r--r--src/library/scala/xml/TextBuffer.scala3
-rw-r--r--src/library/scala/xml/TopScope.scala2
-rw-r--r--src/library/scala/xml/UnprefixedAttribute.scala4
-rw-r--r--src/library/scala/xml/Utility.scala3
-rw-r--r--src/library/scala/xml/dtd/ContentModel.scala8
-rw-r--r--src/library/scala/xml/dtd/ContentModelParser.scala1
-rw-r--r--src/library/scala/xml/dtd/Decl.scala3
-rw-r--r--src/library/scala/xml/dtd/DocType.scala2
-rw-r--r--src/library/scala/xml/dtd/ExternalID.scala4
-rw-r--r--src/library/scala/xml/dtd/Scanner.scala2
-rw-r--r--src/library/scala/xml/factory/NodeFactory.scala2
-rw-r--r--src/library/scala/xml/parsing/FactoryAdapter.scala4
-rw-r--r--src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala4
-rw-r--r--src/library/scala/xml/parsing/TokenTests.scala3
72 files changed, 142 insertions, 26 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index ce4856b9e6..330c80bd4c 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -359,7 +359,7 @@ trait Namers { self: Analyzer =>
tree.symbol = enterModuleSymbol(tree)
tree.symbol.moduleClass.setInfo(namerOf(tree.symbol).moduleClassTypeCompleter((tree)))
finish
- if (tree.symbol.name == nme.PACKAGEkw) {
+ if (tree.symbol.name == nme.PACKAGEkw && tree.symbol.owner != ScalaPackageClass) {
loaders.openPackageModule(tree.symbol)
}
@@ -1132,6 +1132,11 @@ trait Namers { self: Analyzer =>
newNamer(context.makeNewScope(tree, sym)).classSig(tparams, impl)
case ModuleDef(_, _, impl) =>
+ /** no, does not work here.
+ if (tree.symbol.name == nme.PACKAGEkw) {
+ loaders.openPackageModule(tree.symbol)
+ }
+ */
val clazz = sym.moduleClass
clazz.setInfo(newNamer(context.makeNewScope(tree, clazz)).templateSig(impl))
//clazz.typeOfThis = singleType(sym.owner.thisType, sym);
diff --git a/src/library/scala/BigDecimal.scala b/src/library/scala/BigDecimal.scala
index fc874db1f2..7b11cf48b1 100644
--- a/src/library/scala/BigDecimal.scala
+++ b/src/library/scala/BigDecimal.scala
@@ -12,7 +12,7 @@ package scala
import java.{ lang => jl }
import java.math.{ MathContext, BigDecimal => BigDec }
-import scala.collection.immutable.GenericRange
+import scala.collection.immutable.{Range, GenericRange}
/** Conversions which present a consistent conversion interface
* across all the numeric types.
diff --git a/src/library/scala/BigInt.scala b/src/library/scala/BigInt.scala
index dd84371123..46e074d036 100644
--- a/src/library/scala/BigInt.scala
+++ b/src/library/scala/BigInt.scala
@@ -13,6 +13,7 @@ package scala
import java.math.BigInteger
import java.{ lang => jl }
+import scala.collection.immutable.Range
/**
* @author Martin Odersky
diff --git a/src/library/scala/Console.scala b/src/library/scala/Console.scala
index 63eea8237c..fd9b6efc8f 100644
--- a/src/library/scala/Console.scala
+++ b/src/library/scala/Console.scala
@@ -14,7 +14,8 @@ package scala
import java.io.{BufferedReader, InputStream, InputStreamReader,
IOException, OutputStream, PrintStream, Reader}
import java.text.MessageFormat
-
+import scala.collection.immutable.{List, Nil}
+import scala.collection.Seq
import scala.util.DynamicVariable
import Predef._
diff --git a/src/library/scala/CountedIterator.scala b/src/library/scala/CountedIterator.scala
index ed3ac99f0e..35a564fc6a 100644
--- a/src/library/scala/CountedIterator.scala
+++ b/src/library/scala/CountedIterator.scala
@@ -11,6 +11,8 @@
package scala
+import collection.Iterator
+
/** Counted iterators keep track of the number of elements seen so far
*
* @since 2.0
diff --git a/src/library/scala/Either.scala b/src/library/scala/Either.scala
index e78bf63a68..77db581526 100644
--- a/src/library/scala/Either.scala
+++ b/src/library/scala/Either.scala
@@ -11,6 +11,9 @@
package scala
+import collection.{Iterable, Seq}
+import collection.immutable.{List, Nil, ::}
+
/** <p>
* The <code>Either</code> type represents a value of one of two possible
* types (a disjoint union). The data constructors <code>Left</code> and
diff --git a/src/library/scala/Enumeration.scala b/src/library/scala/Enumeration.scala
index 647bd35d31..8d38f71f79 100644
--- a/src/library/scala/Enumeration.scala
+++ b/src/library/scala/Enumeration.scala
@@ -11,7 +11,7 @@
package scala
-import scala.collection.SetLike
+import scala.collection.{SetLike, Iterator}
import scala.collection.mutable.{Builder, AddingBuilder, Map, HashMap}
import scala.collection.immutable.{Set, BitSet}
import scala.collection.generic.CanBuildFrom
diff --git a/src/library/scala/Option.scala b/src/library/scala/Option.scala
index aa05a46a02..a834623a37 100644
--- a/src/library/scala/Option.scala
+++ b/src/library/scala/Option.scala
@@ -13,6 +13,8 @@ package scala
import Predef._
import annotation.experimental
+import collection.{Iterator, Iterable}
+import collection.immutable.List
object Option
{
diff --git a/src/library/scala/Ordering.scala b/src/library/scala/Ordering.scala
index 223d0bf37d..f2cdd3a1f0 100644
--- a/src/library/scala/Ordering.scala
+++ b/src/library/scala/Ordering.scala
@@ -12,6 +12,7 @@
package scala
import java.util.Comparator
+import collection.Iterable
/** A trait for representing total orderings. It is important to
* distinguish between a type that has a total order and a representation
diff --git a/src/library/scala/Product.scala b/src/library/scala/Product.scala
index ce8f733771..6b5ae6fadd 100644
--- a/src/library/scala/Product.scala
+++ b/src/library/scala/Product.scala
@@ -11,6 +11,8 @@
package scala
+import collection.Iterator
+
/** The trait <code>Product</code> defines access functions for instances
* of products, in particular case classes.
*
diff --git a/src/library/scala/Zero.scala b/src/library/scala/Zero.scala
index aff1a05815..57384a3d29 100644
--- a/src/library/scala/Zero.scala
+++ b/src/library/scala/Zero.scala
@@ -10,6 +10,7 @@ package scala
import reflect.ClassManifest
import collection._
+import collection.immutable.{List, Stream, Nil}
import xml.NodeSeq
/** A trait representing Zero of a given type. It should be understood
@@ -72,4 +73,4 @@ object Zero extends LowPriorityZeroImplicits {
implicit def ListZero[A] = zero[List[A]](Nil)
implicit def StreamZero[A] = zero[Stream[A]](Stream.empty)
-} \ No newline at end of file
+}
diff --git a/src/library/scala/collection/BitSetLike.scala b/src/library/scala/collection/BitSetLike.scala
index f102071efa..afcd2da938 100644
--- a/src/library/scala/collection/BitSetLike.scala
+++ b/src/library/scala/collection/BitSetLike.scala
@@ -13,6 +13,7 @@ package scala.collection
import BitSetLike._
import generic._
+import mutable.StringBuilder
/** common base class for mutable and immutable bit sets
*
diff --git a/src/library/scala/collection/IterableLike.scala b/src/library/scala/collection/IterableLike.scala
index bd72b16953..2946426748 100644
--- a/src/library/scala/collection/IterableLike.scala
+++ b/src/library/scala/collection/IterableLike.scala
@@ -10,6 +10,7 @@
package scala.collection
import generic._
+import immutable.{List, Stream}
import annotation.unchecked.uncheckedVariance
/** <p>
diff --git a/src/library/scala/collection/IterableViewLike.scala b/src/library/scala/collection/IterableViewLike.scala
index a531eef2f5..3500280508 100644
--- a/src/library/scala/collection/IterableViewLike.scala
+++ b/src/library/scala/collection/IterableViewLike.scala
@@ -12,6 +12,7 @@
package scala.collection
import generic._
+import collection.immutable.Stream
import TraversableView.NoBuilder
/** A template trait for a non-strict view of an iterable.
diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala
index 3ceda86299..cb40bf0383 100644
--- a/src/library/scala/collection/Iterator.scala
+++ b/src/library/scala/collection/Iterator.scala
@@ -11,7 +11,8 @@
package scala.collection
-import mutable.{Buffer, ArrayBuffer, ListBuffer}
+import mutable.{Buffer, ArrayBuffer, ListBuffer, StringBuilder}
+import immutable.{List, Stream}
import annotation.{ tailrec, experimental }
// import immutable.{List, Nil, ::, Stream}
diff --git a/src/library/scala/collection/LinearSeqLike.scala b/src/library/scala/collection/LinearSeqLike.scala
index ed1f5329c5..a9b33305fd 100644
--- a/src/library/scala/collection/LinearSeqLike.scala
+++ b/src/library/scala/collection/LinearSeqLike.scala
@@ -13,6 +13,7 @@ package scala.collection
import generic._
import mutable.ListBuffer
+import immutable.List
import scala.util.control.Breaks._
/** Class <code>Linear[A]</code> represents linear sequences of elements.
diff --git a/src/library/scala/collection/MapLike.scala b/src/library/scala/collection/MapLike.scala
index adf5dec6e0..19288323e8 100644
--- a/src/library/scala/collection/MapLike.scala
+++ b/src/library/scala/collection/MapLike.scala
@@ -11,7 +11,7 @@
package scala.collection
import generic._
-import mutable.{Builder, MapBuilder}
+import mutable.{Builder, StringBuilder, MapBuilder}
import PartialFunction._
/** <p>
diff --git a/src/library/scala/collection/SeqLike.scala b/src/library/scala/collection/SeqLike.scala
index 14227d4602..ff5a8207c1 100644
--- a/src/library/scala/collection/SeqLike.scala
+++ b/src/library/scala/collection/SeqLike.scala
@@ -6,12 +6,13 @@
** |/ **
\* */
-// $Id: SeqLike.scala 18895 2009-10-02 17:57:16Z odersky $
+// $Id$
package scala.collection
import generic._
import mutable.{ListBuffer, HashMap, GenericArray}
+import immutable.{List, Range}
import annotation.experimental
// import immutable.{List, Nil, ::}
diff --git a/src/library/scala/collection/TraversableLike.scala b/src/library/scala/collection/TraversableLike.scala
index 788e45097e..2b0a938ca8 100644
--- a/src/library/scala/collection/TraversableLike.scala
+++ b/src/library/scala/collection/TraversableLike.scala
@@ -13,7 +13,8 @@ package scala.collection
import generic._
import scala.reflect.ClassManifest
-import mutable.{Builder, Buffer, ArrayBuffer, ListBuffer}
+import mutable.{Builder, StringBuilder, Buffer, ArrayBuffer, ListBuffer}
+import immutable.{List, Stream, Nil, ::}
import annotation.experimental
/** <p>
diff --git a/src/library/scala/collection/TraversableProxyLike.scala b/src/library/scala/collection/TraversableProxyLike.scala
index 2f2de590af..cfccae6bcf 100644
--- a/src/library/scala/collection/TraversableProxyLike.scala
+++ b/src/library/scala/collection/TraversableProxyLike.scala
@@ -12,7 +12,7 @@
package scala.collection
import generic._
-import mutable.Buffer
+import mutable.{Buffer, StringBuilder}
// Methods could be printed by cat TraversableLike.scala | egrep '^ (override )?def'
diff --git a/src/library/scala/collection/generic/SeqForwarder.scala b/src/library/scala/collection/generic/SeqForwarder.scala
index 0472b901a5..02fdc62b65 100644
--- a/src/library/scala/collection/generic/SeqForwarder.scala
+++ b/src/library/scala/collection/generic/SeqForwarder.scala
@@ -11,6 +11,7 @@
package scala.collection.generic
import scala.collection._
+import scala.collection.immutable.Range
/** This class implements a forwarder for sequences. It forwards
* all calls to a different sequence object except for
diff --git a/src/library/scala/collection/generic/TraversableForwarder.scala b/src/library/scala/collection/generic/TraversableForwarder.scala
index 5e24f2b367..efd757b1fa 100644
--- a/src/library/scala/collection/generic/TraversableForwarder.scala
+++ b/src/library/scala/collection/generic/TraversableForwarder.scala
@@ -12,7 +12,8 @@
package scala.collection.generic
import scala.collection._
-import mutable.Buffer
+import mutable.{Buffer, StringBuilder}
+import immutable.{List, Stream}
// import immutable.{List, Nil, ::, Stream}
/** <p>
diff --git a/src/library/scala/collection/immutable/Stream.scala b/src/library/scala/collection/immutable/Stream.scala
index 8694dfd615..6a57c3596d 100644
--- a/src/library/scala/collection/immutable/Stream.scala
+++ b/src/library/scala/collection/immutable/Stream.scala
@@ -13,7 +13,7 @@ package scala.collection
package immutable
import generic._
-import mutable.{Builder, LazyBuilder, ListBuffer}
+import mutable.{Builder, StringBuilder, LazyBuilder, ListBuffer}
import scala.annotation.tailrec
/**
diff --git a/src/library/scala/collection/immutable/StringOps.scala b/src/library/scala/collection/immutable/StringOps.scala
index 6983995df5..a31e98335e 100644
--- a/src/library/scala/collection/immutable/StringOps.scala
+++ b/src/library/scala/collection/immutable/StringOps.scala
@@ -12,6 +12,8 @@
package scala.collection
package immutable
+import mutable.StringBuilder
+
/**
* @since 2.8
*/
diff --git a/src/library/scala/collection/immutable/WrappedString.scala b/src/library/scala/collection/immutable/WrappedString.scala
index 678ebf8cc4..5b46e5b332 100644
--- a/src/library/scala/collection/immutable/WrappedString.scala
+++ b/src/library/scala/collection/immutable/WrappedString.scala
@@ -13,7 +13,7 @@ package scala.collection
package immutable
import generic._
-import mutable.Builder
+import mutable.{Builder, StringBuilder}
import scala.util.matching.Regex
/**
diff --git a/src/library/scala/collection/mutable/LazyBuilder.scala b/src/library/scala/collection/mutable/LazyBuilder.scala
index 20a0b6bb9d..b70d635cc3 100644
--- a/src/library/scala/collection/mutable/LazyBuilder.scala
+++ b/src/library/scala/collection/mutable/LazyBuilder.scala
@@ -11,6 +11,8 @@
package scala.collection
package mutable
+import immutable.{List, Nil}
+
/** A builder that constructs its result lazily. Iterators or iterables to
* be added to this builder with `++=` are not evaluated until `result` is called.
*
diff --git a/src/library/scala/collection/mutable/ListBuffer.scala b/src/library/scala/collection/mutable/ListBuffer.scala
index 3891357b78..9813a6760b 100644
--- a/src/library/scala/collection/mutable/ListBuffer.scala
+++ b/src/library/scala/collection/mutable/ListBuffer.scala
@@ -13,6 +13,7 @@ package scala.collection
package mutable
import generic._
+import immutable.{List, Nil, ::}
/** A Buffer implementation back up by a list. It provides constant time
* prepend and append. Most other operations are linear.
diff --git a/src/library/scala/collection/mutable/MutableList.scala b/src/library/scala/collection/mutable/MutableList.scala
index d85dde71da..73b0ec5502 100644
--- a/src/library/scala/collection/mutable/MutableList.scala
+++ b/src/library/scala/collection/mutable/MutableList.scala
@@ -13,6 +13,7 @@ package scala.collection
package mutable
import generic._
+import immutable.{List, Nil}
/** <p>
* This class is used internally to represent mutable lists. It is the
diff --git a/src/library/scala/collection/mutable/Stack.scala b/src/library/scala/collection/mutable/Stack.scala
index ee66c2a2a3..6e7205c3fa 100644
--- a/src/library/scala/collection/mutable/Stack.scala
+++ b/src/library/scala/collection/mutable/Stack.scala
@@ -13,6 +13,8 @@ package scala.collection
package mutable
import generic._
+import collection.immutable.{List, Nil}
+import collection.Iterator
/** A stack implements a data structure which allows to store and retrieve
* objects in a last-in-first-out (LIFO) fashion.
diff --git a/src/library/scala/reflect/ClassManifest.scala b/src/library/scala/reflect/ClassManifest.scala
index 1eb4dd7324..05205029c0 100644
--- a/src/library/scala/reflect/ClassManifest.scala
+++ b/src/library/scala/reflect/ClassManifest.scala
@@ -12,7 +12,7 @@
package scala.reflect
import scala.runtime._
-import scala.collection.immutable.Nil
+import scala.collection.immutable.{List, Nil}
import scala.collection.mutable.{WrappedArray, ArrayBuilder}
/** <p>
diff --git a/src/library/scala/reflect/Manifest.scala b/src/library/scala/reflect/Manifest.scala
index f8a3c13f49..2b8cf03e7b 100644
--- a/src/library/scala/reflect/Manifest.scala
+++ b/src/library/scala/reflect/Manifest.scala
@@ -13,6 +13,7 @@ package scala.reflect
import scala.runtime._
import scala.collection.mutable._
+import scala.collection.immutable.{List, Nil}
/** <p>
* A <code>Manifest[T]</code> is an opaque descriptor for type <code>T</code>.
diff --git a/src/library/scala/reflect/Tree.scala b/src/library/scala/reflect/Tree.scala
index 3707804aca..38adc40eaf 100644
--- a/src/library/scala/reflect/Tree.scala
+++ b/src/library/scala/reflect/Tree.scala
@@ -11,6 +11,8 @@
package scala.reflect
+import collection.immutable.{List, Nil}
+
/** This type is required by the compiler and <b>should not be used in client code</b>. */
abstract class Tree
diff --git a/src/library/scala/reflect/Type.scala b/src/library/scala/reflect/Type.scala
index 3ce496f32d..d60388ebe6 100644
--- a/src/library/scala/reflect/Type.scala
+++ b/src/library/scala/reflect/Type.scala
@@ -11,6 +11,7 @@
package scala.reflect
+import collection.immutable.List
import Predef._
/** This type is required by the compiler and <b>should not be used in client code</b>. */
diff --git a/src/library/scala/runtime/RichDouble.scala b/src/library/scala/runtime/RichDouble.scala
index c29d7e0868..6e5c33bcb5 100644
--- a/src/library/scala/runtime/RichDouble.scala
+++ b/src/library/scala/runtime/RichDouble.scala
@@ -11,7 +11,7 @@
package scala.runtime
-import scala.collection.immutable.GenericRange
+import scala.collection.immutable.{Range, GenericRange}
final class RichDouble(x: Double) extends Proxy with Ordered[Double] {
// Proxy.self
diff --git a/src/library/scala/runtime/RichLong.scala b/src/library/scala/runtime/RichLong.scala
index c2e32a984e..8cdd21d5dc 100644
--- a/src/library/scala/runtime/RichLong.scala
+++ b/src/library/scala/runtime/RichLong.scala
@@ -11,7 +11,7 @@
package scala.runtime
-import scala.collection.immutable.GenericRange
+import scala.collection.immutable.{Range, GenericRange}
final class RichLong(x: Long) extends Proxy with Ordered[Long] {
diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala
index aea7b159d1..dafa82916e 100644
--- a/src/library/scala/runtime/ScalaRunTime.scala
+++ b/src/library/scala/runtime/ScalaRunTime.scala
@@ -14,6 +14,7 @@ package scala.runtime
import scala.reflect.ClassManifest
import scala.collection.Seq
import scala.collection.mutable._
+import scala.collection.immutable.{List, Stream, Nil, ::}
/* The object <code>ScalaRunTime</code> provides ...
*/
diff --git a/src/library/scala/util/Random.scala b/src/library/scala/util/Random.scala
index 54feb8ac72..d1c04e996f 100644
--- a/src/library/scala/util/Random.scala
+++ b/src/library/scala/util/Random.scala
@@ -11,6 +11,8 @@
package scala.util
+import collection.immutable.List
+
/**
* @author Stephane Micheloud
*
diff --git a/src/library/scala/util/automata/BaseBerrySethi.scala b/src/library/scala/util/automata/BaseBerrySethi.scala
index 6960407ebf..09c6fd2835 100644
--- a/src/library/scala/util/automata/BaseBerrySethi.scala
+++ b/src/library/scala/util/automata/BaseBerrySethi.scala
@@ -16,6 +16,8 @@ import scala.util.regexp.Base
import scala.collection.mutable
import scala.collection.immutable
+import collection.immutable.{List, Nil}
+import collection.{Seq, Iterator}
/** this turns a regexp over A into a NondetWorkAutom over A using the
* celebrated position automata construction (also called Berry-Sethi or
diff --git a/src/library/scala/util/automata/NondetWordAutom.scala b/src/library/scala/util/automata/NondetWordAutom.scala
index b9c1e2ddef..fd2bb657e6 100644
--- a/src/library/scala/util/automata/NondetWordAutom.scala
+++ b/src/library/scala/util/automata/NondetWordAutom.scala
@@ -11,7 +11,7 @@
package scala.util.automata
-import scala.collection.{immutable, mutable, Set, Map}
+import scala.collection.{immutable, mutable, Set, Seq, Map}
/** A nondeterministic automaton. States are integers, where
* 0 is always the only initial state. Transitions are represented
diff --git a/src/library/scala/util/automata/WordBerrySethi.scala b/src/library/scala/util/automata/WordBerrySethi.scala
index 46c7dbcfe6..9fb2cb71cc 100644
--- a/src/library/scala/util/automata/WordBerrySethi.scala
+++ b/src/library/scala/util/automata/WordBerrySethi.scala
@@ -13,7 +13,8 @@ package scala.util.automata
import scala.collection.{immutable, mutable, Map}
import scala.util.regexp.WordExp
-
+import collection.immutable.{List, Nil}
+import collection.{Seq, Iterator}
/** This class turns a regexp into a NondetWordAutom using the
* celebrated position automata construction (also called Berry-Sethi or
diff --git a/src/library/scala/util/control/Exception.scala b/src/library/scala/util/control/Exception.scala
index bf53eed251..356b11df51 100644
--- a/src/library/scala/util/control/Exception.scala
+++ b/src/library/scala/util/control/Exception.scala
@@ -1,5 +1,7 @@
package scala.util.control
+import collection.immutable.List
+
/** Classes representing the components of exception handling.
* Each class is independently composable. Some common uses:
*
diff --git a/src/library/scala/util/matching/Regex.scala b/src/library/scala/util/matching/Regex.scala
index 895807333d..e4ef708608 100644
--- a/src/library/scala/util/matching/Regex.scala
+++ b/src/library/scala/util/matching/Regex.scala
@@ -12,6 +12,8 @@
package scala.util.matching
import java.util.regex.{Pattern, Matcher}
+import collection.immutable.List
+import collection.{Iterator, Seq}
/** This class provides methods for creating and using regular expressions.
* It is based on the regular expressions of the JDK since 1.4.
diff --git a/src/library/scala/xml/Atom.scala b/src/library/scala/xml/Atom.scala
index 79dcd58bf1..b3dc9578a7 100644
--- a/src/library/scala/xml/Atom.scala
+++ b/src/library/scala/xml/Atom.scala
@@ -10,6 +10,7 @@
package scala.xml
+import collection.mutable.StringBuilder
/** The class <code>Atom</code> provides an XML node for text (PCDATA).
* It is used in both non-bound and bound XML representations.
diff --git a/src/library/scala/xml/Attribute.scala b/src/library/scala/xml/Attribute.scala
index c488df1a55..222642fe47 100644
--- a/src/library/scala/xml/Attribute.scala
+++ b/src/library/scala/xml/Attribute.scala
@@ -10,6 +10,10 @@
package scala.xml
+import collection.Seq
+import collection.mutable.StringBuilder
+
+
/** Attribute defines the interface shared by both
* PrefixedAttribute and UnprefixedAttribute
*/
diff --git a/src/library/scala/xml/Comment.scala b/src/library/scala/xml/Comment.scala
index c1b7c6645c..a417f82220 100644
--- a/src/library/scala/xml/Comment.scala
+++ b/src/library/scala/xml/Comment.scala
@@ -10,6 +10,7 @@
package scala.xml
+import collection.mutable.StringBuilder
/** The class <code>Comment</code> implements an XML node for comments.
*
diff --git a/src/library/scala/xml/Elem.scala b/src/library/scala/xml/Elem.scala
index 49582fb443..f9346cff3a 100644
--- a/src/library/scala/xml/Elem.scala
+++ b/src/library/scala/xml/Elem.scala
@@ -11,6 +11,8 @@
package scala.xml
+import collection.Seq
+
/** This singleton object contains the apply and unapplySeq methods for convenient construction and
* deconstruction. It is possible to deconstruct any Node instance (that is not a SpecialNode or
* a Group) using the syntax
diff --git a/src/library/scala/xml/EntityRef.scala b/src/library/scala/xml/EntityRef.scala
index 1f241aa54c..8eba6b7c88 100644
--- a/src/library/scala/xml/EntityRef.scala
+++ b/src/library/scala/xml/EntityRef.scala
@@ -10,6 +10,8 @@
package scala.xml
+import collection.mutable.StringBuilder
+
/** The class <code>EntityRef</code> implements an XML node for entity
* references.
diff --git a/src/library/scala/xml/Group.scala b/src/library/scala/xml/Group.scala
index 99a9f8c95d..11f064e67c 100644
--- a/src/library/scala/xml/Group.scala
+++ b/src/library/scala/xml/Group.scala
@@ -10,6 +10,7 @@
package scala.xml
+import collection.Seq
/** A hack to group XML nodes in one node for output.
*
diff --git a/src/library/scala/xml/MetaData.scala b/src/library/scala/xml/MetaData.scala
index f45da11211..8bf2f87dd9 100644
--- a/src/library/scala/xml/MetaData.scala
+++ b/src/library/scala/xml/MetaData.scala
@@ -13,6 +13,10 @@ package scala.xml
import Utility.sbToString
import annotation.tailrec
+import collection.immutable.List
+import collection.{Seq, Iterator, Iterable}
+import collection.mutable.StringBuilder
+
/**
* Copyright 2008 Google Inc. All Rights Reserved.
diff --git a/src/library/scala/xml/NamespaceBinding.scala b/src/library/scala/xml/NamespaceBinding.scala
index b0ea5dcc84..6bd339aab3 100644
--- a/src/library/scala/xml/NamespaceBinding.scala
+++ b/src/library/scala/xml/NamespaceBinding.scala
@@ -13,6 +13,7 @@ package scala.xml
import Predef._
import Utility.sbToString
+import collection.mutable.StringBuilder
/** The class <code>NamespaceBinding</code> represents namespace bindings
* and scopes. The binding for the default namespace is treated as a null
diff --git a/src/library/scala/xml/Node.scala b/src/library/scala/xml/Node.scala
index 618c4de8d2..5636c7ddcc 100644
--- a/src/library/scala/xml/Node.scala
+++ b/src/library/scala/xml/Node.scala
@@ -11,6 +11,10 @@
package scala.xml
+import collection.Seq
+import collection.immutable.{List, Nil}
+import collection.mutable.StringBuilder
+
/**
* This object provides methods ...
*
diff --git a/src/library/scala/xml/NodeBuffer.scala b/src/library/scala/xml/NodeBuffer.scala
index d20f6fadcc..d8b5927435 100644
--- a/src/library/scala/xml/NodeBuffer.scala
+++ b/src/library/scala/xml/NodeBuffer.scala
@@ -11,6 +11,8 @@
package scala.xml
+import collection.{Iterator, Seq, Iterable}
+
/**
* <p>
* This class acts as a Buffer for nodes. If it is used as a sequence
diff --git a/src/library/scala/xml/NodeSeq.scala b/src/library/scala/xml/NodeSeq.scala
index 0c610bdd90..de6e38d5b7 100644
--- a/src/library/scala/xml/NodeSeq.scala
+++ b/src/library/scala/xml/NodeSeq.scala
@@ -12,7 +12,8 @@
package scala.xml
import collection.immutable
-import collection.SeqLike
+import collection.immutable.{List, Nil, ::}
+import collection.{Seq, SeqLike}
import collection.mutable.{Builder, ListBuffer}
import collection.generic.CanBuildFrom
diff --git a/src/library/scala/xml/Null.scala b/src/library/scala/xml/Null.scala
index 9cda330057..1bbcd0713d 100644
--- a/src/library/scala/xml/Null.scala
+++ b/src/library/scala/xml/Null.scala
@@ -12,6 +12,9 @@
package scala.xml
import Utility.{ isNameStart }
+import collection.Iterator
+import collection.immutable.{Nil, List}
+import collection.mutable.StringBuilder
case object Null extends MetaData {
diff --git a/src/library/scala/xml/PrefixedAttribute.scala b/src/library/scala/xml/PrefixedAttribute.scala
index 7922999dfd..cd89456628 100644
--- a/src/library/scala/xml/PrefixedAttribute.scala
+++ b/src/library/scala/xml/PrefixedAttribute.scala
@@ -11,6 +11,10 @@
package scala.xml
+import collection.Seq
+import collection.mutable.StringBuilder
+
+
/** prefixed attributes always have a non-null namespace.
*
* @param pre ...
diff --git a/src/library/scala/xml/ProcInstr.scala b/src/library/scala/xml/ProcInstr.scala
index c59e89e9a8..0f7877049c 100644
--- a/src/library/scala/xml/ProcInstr.scala
+++ b/src/library/scala/xml/ProcInstr.scala
@@ -9,6 +9,7 @@
// $Id$
package scala.xml
+import collection.mutable.StringBuilder
/** an XML node for processing instructions (PI)
*
diff --git a/src/library/scala/xml/SpecialNode.scala b/src/library/scala/xml/SpecialNode.scala
index 084de78ecd..1c49467773 100644
--- a/src/library/scala/xml/SpecialNode.scala
+++ b/src/library/scala/xml/SpecialNode.scala
@@ -11,6 +11,9 @@
package scala.xml
+import collection.immutable.{List, Nil, ::}
+import collection.mutable.StringBuilder
+
/** <p>
* <code>SpecialNode</code> is a special XML node which
* represents either text (PCDATA), a comment, a PI, or an entity ref.
diff --git a/src/library/scala/xml/Text.scala b/src/library/scala/xml/Text.scala
index 97c8f120f9..ffb5cf5155 100644
--- a/src/library/scala/xml/Text.scala
+++ b/src/library/scala/xml/Text.scala
@@ -11,6 +11,8 @@
package scala.xml
+import collection.mutable.StringBuilder
+
object Text {
def apply(data: String) =
if (data != null) new Text(data)
diff --git a/src/library/scala/xml/TextBuffer.scala b/src/library/scala/xml/TextBuffer.scala
index 20c23a6a06..633c90e94f 100644
--- a/src/library/scala/xml/TextBuffer.scala
+++ b/src/library/scala/xml/TextBuffer.scala
@@ -11,6 +11,9 @@
package scala.xml
+import collection.Seq
+import collection.mutable.StringBuilder
+import collection.immutable.{List, Nil, ::}
import Utility.isSpace
object TextBuffer {
diff --git a/src/library/scala/xml/TopScope.scala b/src/library/scala/xml/TopScope.scala
index 983d0f99ef..b2b2cdfb1e 100644
--- a/src/library/scala/xml/TopScope.scala
+++ b/src/library/scala/xml/TopScope.scala
@@ -11,6 +11,8 @@
package scala.xml
import Predef._
+import collection.mutable.StringBuilder
+
/** top level namespace scope. only contains the predefined binding
* for the &quot;xml&quot; prefix which is bound to
diff --git a/src/library/scala/xml/UnprefixedAttribute.scala b/src/library/scala/xml/UnprefixedAttribute.scala
index dcc10cd646..8f4129b25b 100644
--- a/src/library/scala/xml/UnprefixedAttribute.scala
+++ b/src/library/scala/xml/UnprefixedAttribute.scala
@@ -11,6 +11,10 @@
package scala.xml
+import collection.Seq
+import collection.mutable.StringBuilder
+
+
/** Unprefixed attributes have the null namespace, and no prefix field
*
* @author Burak Emir
diff --git a/src/library/scala/xml/Utility.scala b/src/library/scala/xml/Utility.scala
index f4452fd064..0628de8922 100644
--- a/src/library/scala/xml/Utility.scala
+++ b/src/library/scala/xml/Utility.scala
@@ -11,7 +11,8 @@
package scala.xml
-import collection.mutable.{Set, HashSet}
+import collection.mutable.{Set, HashSet, StringBuilder}
+import collection.Seq
import parsing.XhtmlEntities
/**
diff --git a/src/library/scala/xml/dtd/ContentModel.scala b/src/library/scala/xml/dtd/ContentModel.scala
index 34517843f0..d5d45bdaa0 100644
--- a/src/library/scala/xml/dtd/ContentModel.scala
+++ b/src/library/scala/xml/dtd/ContentModel.scala
@@ -12,9 +12,11 @@
package scala.xml
package dtd
-import scala.util.regexp.WordExp
-import scala.util.automata.{DetWordAutom, SubsetConstruction, WordBerrySethi}
-import scala.collection.mutable.HashSet
+import util.regexp.WordExp
+import util.automata.{DetWordAutom, SubsetConstruction, WordBerrySethi}
+import collection.mutable.{HashSet, StringBuilder}
+import collection.immutable.{List, Nil}
+import collection.Seq
import Utility.sbToString
import PartialFunction._
diff --git a/src/library/scala/xml/dtd/ContentModelParser.scala b/src/library/scala/xml/dtd/ContentModelParser.scala
index a98e75ee02..4f0edb9cae 100644
--- a/src/library/scala/xml/dtd/ContentModelParser.scala
+++ b/src/library/scala/xml/dtd/ContentModelParser.scala
@@ -12,6 +12,7 @@
package scala.xml
package dtd
+import collection.immutable.List
/** Parser for regexps (content models in DTD element declarations) */
diff --git a/src/library/scala/xml/dtd/Decl.scala b/src/library/scala/xml/dtd/Decl.scala
index fc605f848f..417b9407f0 100644
--- a/src/library/scala/xml/dtd/Decl.scala
+++ b/src/library/scala/xml/dtd/Decl.scala
@@ -13,6 +13,9 @@ package scala.xml
package dtd
import Utility.sbToString
+import collection.immutable.List
+import collection.mutable.StringBuilder
+
abstract class Decl
diff --git a/src/library/scala/xml/dtd/DocType.scala b/src/library/scala/xml/dtd/DocType.scala
index 3f95f0f87d..31c246fa41 100644
--- a/src/library/scala/xml/dtd/DocType.scala
+++ b/src/library/scala/xml/dtd/DocType.scala
@@ -12,6 +12,8 @@
package scala.xml
package dtd
+import collection.Seq
+
/** An XML node for document type declaration.
*
* @author Burak Emir
diff --git a/src/library/scala/xml/dtd/ExternalID.scala b/src/library/scala/xml/dtd/ExternalID.scala
index 2df8994d17..01302e716b 100644
--- a/src/library/scala/xml/dtd/ExternalID.scala
+++ b/src/library/scala/xml/dtd/ExternalID.scala
@@ -12,6 +12,10 @@
package scala.xml
package dtd
+import collection.immutable.{List, Nil}
+import collection.mutable.StringBuilder
+
+
/** an ExternalIDs - either PublicID or SystemID
*
* @author Burak Emir
diff --git a/src/library/scala/xml/dtd/Scanner.scala b/src/library/scala/xml/dtd/Scanner.scala
index a877fc0dfe..71cb93b39e 100644
--- a/src/library/scala/xml/dtd/Scanner.scala
+++ b/src/library/scala/xml/dtd/Scanner.scala
@@ -12,6 +12,8 @@
package scala.xml
package dtd
+import collection.{Seq, Iterator}
+import collection.immutable.{List, Nil}
/** Scanner for regexps (content models in DTD element declarations)
* todo: cleanup
diff --git a/src/library/scala/xml/factory/NodeFactory.scala b/src/library/scala/xml/factory/NodeFactory.scala
index 5b4ba2d822..911ca620a4 100644
--- a/src/library/scala/xml/factory/NodeFactory.scala
+++ b/src/library/scala/xml/factory/NodeFactory.scala
@@ -12,6 +12,8 @@ package scala.xml
package factory
import parsing.{ FactoryAdapter, NoBindingFactoryAdapter }
+import collection.Seq
+import collection.immutable.{List, Nil}
import org.xml.sax.InputSource
import java.io.{ InputStream, Reader, StringReader, File, FileDescriptor, FileInputStream }
import javax.xml.parsers.{ SAXParser, SAXParserFactory }
diff --git a/src/library/scala/xml/parsing/FactoryAdapter.scala b/src/library/scala/xml/parsing/FactoryAdapter.scala
index c210fe49c4..838cee008f 100644
--- a/src/library/scala/xml/parsing/FactoryAdapter.scala
+++ b/src/library/scala/xml/parsing/FactoryAdapter.scala
@@ -13,7 +13,9 @@ package scala.xml
package parsing
import java.io.{InputStream, Reader, File, FileDescriptor, FileInputStream}
-import scala.collection.mutable.Stack
+import collection.mutable.{Stack, StringBuilder}
+import collection.immutable.{List, Nil}
+import collection.{Seq, Iterator}
import org.xml.sax.{ Attributes, InputSource }
import org.xml.sax.helpers.DefaultHandler
diff --git a/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala b/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala
index 6f01886bb2..e062658cc3 100644
--- a/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala
+++ b/src/library/scala/xml/parsing/NoBindingFactoryAdapter.scala
@@ -11,7 +11,9 @@
package scala.xml
package parsing
-import scala.xml.factory.NodeFactory
+import factory.NodeFactory
+import collection.Seq
+import collection.immutable.List
import org.xml.sax.InputSource
import javax.xml.parsers.{ SAXParser, SAXParserFactory }
diff --git a/src/library/scala/xml/parsing/TokenTests.scala b/src/library/scala/xml/parsing/TokenTests.scala
index 69788b5c22..f53e849764 100644
--- a/src/library/scala/xml/parsing/TokenTests.scala
+++ b/src/library/scala/xml/parsing/TokenTests.scala
@@ -12,7 +12,8 @@
package scala.xml
package parsing
-
+import collection.Seq
+import collection.immutable.List
/**
* Helper functions for parsing XML fragments
*/