diff options
author | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2009-05-27 19:35:02 +0000 |
---|---|---|
committer | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2009-05-27 19:35:02 +0000 |
commit | cc5e79c9ec9cea8d0f22020b528877d8f6e00153 (patch) | |
tree | 94e43f77c7b7271b3d0b6f9fb7372ae83b39360d /src | |
parent | 4b8be5d8bec86358276407d6521c41702ccda835 (diff) | |
download | scala-cc5e79c9ec9cea8d0f22020b528877d8f6e00153.tar.gz scala-cc5e79c9ec9cea8d0f22020b528877d8f6e00153.tar.bz2 scala-cc5e79c9ec9cea8d0f22020b528877d8f6e00153.zip |
In "Iterable" and in all its subclasses, "itera...
In "Iterable" and in all its subclasses, "iterator" replaces "elements"
(and assorted changes).
Diffstat (limited to 'src')
203 files changed, 676 insertions, 588 deletions
diff --git a/src/actors/scala/actors/Actor.scala b/src/actors/scala/actors/Actor.scala index 1996bd3f7a..a61de1b249 100644 --- a/src/actors/scala/actors/Actor.scala +++ b/src/actors/scala/actors/Actor.scala @@ -946,7 +946,7 @@ trait Actor extends AbstractActor { } private[actors] def unlinkFrom(from: AbstractActor) = synchronized { - links = links.remove(from.==) + links = links.filterNot(from.==) } var trapExit = false @@ -990,7 +990,7 @@ trait Actor extends AbstractActor { private[actors] def exitLinked() { exiting = true // remove this from links - val mylinks = links.remove(this.==) + val mylinks = links.filterNot(this.==) // exit linked processes mylinks.foreach((linked: AbstractActor) => { unlink(linked) diff --git a/src/actors/scala/actors/remote/RemoteActor.scala b/src/actors/scala/actors/remote/RemoteActor.scala index 6c01b770ca..f699515add 100644 --- a/src/actors/scala/actors/remote/RemoteActor.scala +++ b/src/actors/scala/actors/remote/RemoteActor.scala @@ -118,7 +118,7 @@ object RemoteActor { } def someKernel: NetKernel = - kernels.values.next + kernels.valuesIterator.next } diff --git a/src/build/genprod.scala b/src/build/genprod.scala index 05b99d07be..9e05ab6299 100644 --- a/src/build/genprod.scala +++ b/src/build/genprod.scala @@ -58,7 +58,7 @@ object genprod { def zippedAndCommaSeparated(left: List[String], right: List[String]): String = { val sb = new StringBuilder - val it = (left zip right).elements + val it = (left zip right).iterator def append1 = { val p = it.next sb.append(p._1).append(':').append(p._2) diff --git a/src/cldc-library/scala/Array.scala b/src/cldc-library/scala/Array.scala index 0ba96c71a6..f37c7f56b0 100644 --- a/src/cldc-library/scala/Array.scala +++ b/src/cldc-library/scala/Array.scala @@ -81,7 +81,7 @@ object Array { def apply[A <: AnyRef](xs: A*): Array[A] = { val array = new Array[A](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } @@ -97,7 +97,7 @@ object Array { def Array[A](xs: A*): Array[A] = { val array = new Array[A](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } */ @@ -105,43 +105,43 @@ object Array { def apply(xs: Boolean*): Array[Boolean] = { val array = new Array[Boolean](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Byte*): Array[Byte] = { val array = new Array[Byte](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Short*): Array[Short] = { val array = new Array[Short](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Char*): Array[Char] = { val array = new Array[Char](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Int*): Array[Int] = { val array = new Array[Int](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Long*): Array[Long] = { val array = new Array[Long](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Unit*): Array[Unit] = { val array = new Array[Unit](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } @@ -297,7 +297,7 @@ final class Array[A](_length: Int) extends Array.Array0[A] { /** An iterator returning the elements of this array, starting from 0. */ - override def elements: Iterator[A] = throw new Error() + override def iterator: Iterator[A] = throw new Error() /** @deprecated use <code>slice(from,end).force</code> instead */ def subArray(from: Int, end: Int): Array[A] = throw new Error() diff --git a/src/cldc-library/scala/List.scala b/src/cldc-library/scala/List.scala index f32a50d421..71bf2f1ca2 100644 --- a/src/cldc-library/scala/List.scala +++ b/src/cldc-library/scala/List.scala @@ -501,7 +501,7 @@ sealed abstract class List[+A] extends Seq[A] { * * @return an iterator on the list elements. */ - override def elements: Iterator[A] = new Iterator[A] { + override def iterator: Iterator[A] = new Iterator[A] { var these = List.this def hasNext: Boolean = !these.isEmpty def next: A = @@ -1027,7 +1027,7 @@ sealed abstract class List[+A] extends Seq[A] { val b = new ListBuffer[B] var these = this while (!these.isEmpty) { - var those = f(these.head).elements + var those = f(these.head).iterator while (those.hasNext) { b += those.next } diff --git a/src/cldc-library/scala/Predef.scala b/src/cldc-library/scala/Predef.scala index 26a5b08a16..bbb4478412 100644 --- a/src/cldc-library/scala/Predef.scala +++ b/src/cldc-library/scala/Predef.scala @@ -165,8 +165,8 @@ object Predef { val self = xs def compare(that: Iterable[A]): Int = { var res = 0 - val these = xs.elements - val those = that.elements + val these = xs.iterator + val those = that.iterator while (res == 0 && these.hasNext) res = if (those.hasNext) these.next compare those.next else 1 if (res == 0) { diff --git a/src/compiler/scala/tools/ant/ScalaBazaar.scala b/src/compiler/scala/tools/ant/ScalaBazaar.scala index a787d08365..aba6835eae 100644 --- a/src/compiler/scala/tools/ant/ScalaBazaar.scala +++ b/src/compiler/scala/tools/ant/ScalaBazaar.scala @@ -87,8 +87,8 @@ package scala.tools.ant { content.update(key, value :: content(key)) else content.update(key, List(value)) } - def fileSets = elements.toList - def elements = content.elements + def fileSets = content.toList + def iterator = content.iterator } @@ -125,7 +125,7 @@ package scala.tools.ant { /** Sets the depends attribute. Used by Ant. * @param input The value for <code>depends</code>. */ def setDepends(input: String) = { - depends = List.fromArray(input.split(",")).flatMap { s: String => + depends = input.split(",").toList.flatMap { s: String => val st = s.trim() (if (st != "") List(st) else Nil) } @@ -291,7 +291,7 @@ package scala.tools.ant { for { Pair(folder, fileSets) <- fileSetsMap.fileSets fileSet <- fileSets - file <- List.fromArray(fileSet.getDirectoryScanner(getProject).getIncludedFiles) + file <- fileSet.getDirectoryScanner(getProject).getIncludedFiles.toList } yield Triple(folder, fileSet.getDir(getProject), file) val zip = new ZipOutputStream(new FileOutputStream(file.get, false)) if (!zipContent.isEmpty) { diff --git a/src/compiler/scala/tools/ant/ScalaTool.scala b/src/compiler/scala/tools/ant/ScalaTool.scala index 9fc02859c8..4faf5a2e90 100644 --- a/src/compiler/scala/tools/ant/ScalaTool.scala +++ b/src/compiler/scala/tools/ant/ScalaTool.scala @@ -93,7 +93,7 @@ class ScalaTool extends MatchingTask { /** Sets the platforms attribute. */ def setPlatforms(input: String) = { - platforms = List.fromArray(input.split(",")).flatMap { s: String => + platforms = input.split(",").toList.flatMap { s: String => val st = s.trim if (Platforms.isPermissible(st)) (if (input != "") List(st) else Nil) @@ -119,7 +119,7 @@ class ScalaTool extends MatchingTask { /** Sets JVM properties that will be set whilst running the tool. */ def setProperties(input: String) = { - properties = List.fromArray(input.split(",")).flatMap { s: String => + properties = input.split(",").toList.flatMap { s: String => val st = s.trim val stArray = st.split("=", 2) if (stArray.length == 2) { @@ -177,7 +177,7 @@ class ScalaTool extends MatchingTask { } private def readAndPatchResource(resource: String, tokens: Map[String, String]): String = { - val chars = getResourceAsCharStream(this.getClass, resource).elements + val chars = getResourceAsCharStream(this.getClass, resource).iterator val builder = new StringBuilder() while (chars.hasNext) { diff --git a/src/compiler/scala/tools/ant/Scalac.scala b/src/compiler/scala/tools/ant/Scalac.scala index 3ede08f40c..9fb6d09f56 100644 --- a/src/compiler/scala/tools/ant/Scalac.scala +++ b/src/compiler/scala/tools/ant/Scalac.scala @@ -324,7 +324,7 @@ class Scalac extends MatchingTask { /** Sets the <code>logphase</code> attribute. Used by Ant. * @param input The value for <code>logPhase</code>. */ def setLogPhase(input: String) { - logPhase = List.fromArray(input.split(",")).flatMap { s: String => + logPhase = input.split(",").toList.flatMap { s: String => val st = s.trim() if (CompilerPhase.isPermissible(st)) (if (input != "") List(st) else Nil) diff --git a/src/compiler/scala/tools/ant/Scaladoc.scala b/src/compiler/scala/tools/ant/Scaladoc.scala index 51aa33b06e..8a85393293 100644 --- a/src/compiler/scala/tools/ant/Scaladoc.scala +++ b/src/compiler/scala/tools/ant/Scaladoc.scala @@ -372,7 +372,7 @@ class Scaladoc extends MatchingTask { */ private def getClasspath: List[File] = if (classpath.isEmpty) error("Member 'classpath' is empty.") - else List.fromArray(classpath.get.list()).map(nameToFile) + else classpath.get.list().toList.map(nameToFile) /** Gets the value of the <code>origin</code> attribute in a Scala-friendly * form. @@ -381,7 +381,7 @@ class Scaladoc extends MatchingTask { */ private def getOrigin: List[File] = if (origin.isEmpty) error("Member 'origin' is empty.") - else List.fromArray(origin.get.list()).map(nameToFile) + else origin.get.list().toList.map(nameToFile) /** Gets the value of the <code>destination</code> attribute in a * Scala-friendly form. @@ -399,7 +399,7 @@ class Scaladoc extends MatchingTask { */ private def getSourcepath: List[File] = if (sourcepath.isEmpty) error("Member 'sourcepath' is empty.") - else List.fromArray(sourcepath.get.list()).map(nameToFile) + else sourcepath.get.list().toList.map(nameToFile) /** Gets the value of the <code>bootclasspath</code> attribute in a * Scala-friendly form. @@ -408,7 +408,7 @@ class Scaladoc extends MatchingTask { */ private def getBootclasspath: List[File] = if (bootclasspath.isEmpty) error("Member 'bootclasspath' is empty.") - else List.fromArray(bootclasspath.get.list()).map(nameToFile) + else bootclasspath.get.list().toList.map(nameToFile) /** Gets the value of the <code>extdirs</code> attribute in a * Scala-friendly form. @@ -417,7 +417,7 @@ class Scaladoc extends MatchingTask { */ private def getExtdirs: List[File] = if (extdirs.isEmpty) error("Member 'extdirs' is empty.") - else List.fromArray(extdirs.get.list()).map(nameToFile) + else extdirs.get.list().toList.map(nameToFile) /*============================================================================*\ ** Compilation and support methods ** @@ -513,7 +513,7 @@ class Scaladoc extends MatchingTask { originFile <- { val includedFiles = getDirectoryScanner(originDir).getIncludedFiles() - val list = List.fromArray(includedFiles) + val list = includedFiles.toList if (list.length > 0) log( "Documenting " + list.length + " source file" + @@ -566,7 +566,7 @@ class Scaladoc extends MatchingTask { log("Scaladoc params = '" + addParams + "'", Project.MSG_DEBUG) var args = if (addParams.trim() == "") Nil - else List.fromArray(addParams.trim().split(" ")).map(_.trim()) + else addParams.trim().split(" ").toList.map(_.trim()) while (!args.isEmpty) { if (args.head startsWith "-") { diff --git a/src/compiler/scala/tools/ant/sabbus/Compilers.scala b/src/compiler/scala/tools/ant/sabbus/Compilers.scala index b1566fd12c..33a328f140 100644 --- a/src/compiler/scala/tools/ant/sabbus/Compilers.scala +++ b/src/compiler/scala/tools/ant/sabbus/Compilers.scala @@ -18,7 +18,7 @@ object Compilers extends collection.DefaultMap[String, Compiler] { private val container = new collection.mutable.HashMap[String, Compiler] - def elements = container.elements + def iterator = container.iterator def get(id: String) = container.get(id) diff --git a/src/compiler/scala/tools/nsc/ConsoleWriter.scala b/src/compiler/scala/tools/nsc/ConsoleWriter.scala index c8a1901683..f77f2541a5 100644 --- a/src/compiler/scala/tools/nsc/ConsoleWriter.scala +++ b/src/compiler/scala/tools/nsc/ConsoleWriter.scala @@ -20,7 +20,7 @@ class ConsoleWriter extends Writer { def write(cbuf: Array[Char], off: Int, len: Int) { if (len > 0) - write(new String(cbuf.subArray(off, off+len))) + write(new String(cbuf.slice(off, off+len))) } override def write(str: String) { Console.print(str) } diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala index bb3e37e291..ecf2bc521c 100644 --- a/src/compiler/scala/tools/nsc/Global.scala +++ b/src/compiler/scala/tools/nsc/Global.scala @@ -728,7 +728,7 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable } /* An iterator returning all the units being compiled in this run */ - def units: Iterator[CompilationUnit] = unitbuf.elements + def units: Iterator[CompilationUnit] = unitbuf.iterator /** A map from compiled top-level symbols to their source files */ val symSource = new HashMap[Symbol, AbstractFile] @@ -792,7 +792,7 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable showDef(newTermName(settings.Xshowobj.value), true) if (reporter.hasErrors) { - for ((sym, file) <- symSource.elements) { + for ((sym, file) <- symSource.iterator) { sym.reset(new loaders.SourcefileLoader(file)) if (sym.isTerm) sym.moduleClass.reset(loaders.moduleClassLoader) } @@ -805,7 +805,7 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable warning("there were unchecked warnings; re-run with " + settings.unchecked.name + " for details") } } - for ((sym, file) <- symSource.elements) resetPackageClass(sym.owner) + for ((sym, file) <- symSource.iterator) resetPackageClass(sym.owner) informTime("total", startTime) dependencyAnalysis.writeToFile(); diff --git a/src/compiler/scala/tools/nsc/Main.scala b/src/compiler/scala/tools/nsc/Main.scala index 36e0b67457..dbd9c496d6 100644 --- a/src/compiler/scala/tools/nsc/Main.scala +++ b/src/compiler/scala/tools/nsc/Main.scala @@ -43,7 +43,7 @@ object Main extends AnyRef with EvalLoop { def process(args: Array[String]) { val settings = new Settings(error) reporter = new ConsoleReporter(settings) - val command = new CompilerCommand(List.fromArray(args), settings, error, false) + val command = new CompilerCommand(args.toList, settings, error, false) if (command.settings.version.value) reporter.info(null, versionMsg, true) else { diff --git a/src/compiler/scala/tools/nsc/MainTokenMetric.scala b/src/compiler/scala/tools/nsc/MainTokenMetric.scala index 20b4b2c48b..760ab12822 100644 --- a/src/compiler/scala/tools/nsc/MainTokenMetric.scala +++ b/src/compiler/scala/tools/nsc/MainTokenMetric.scala @@ -37,7 +37,7 @@ object MainTokenMetric { def process(args: Array[String]) { val settings = new Settings(error) reporter = new ConsoleReporter(settings) - val command = new CompilerCommand(List.fromArray(args), settings, error, false) + val command = new CompilerCommand(args.toList, settings, error, false) try { val compiler = new Global(command.settings, reporter) tokenMetric(compiler, command.files) diff --git a/src/compiler/scala/tools/nsc/ScalaDoc.scala b/src/compiler/scala/tools/nsc/ScalaDoc.scala index 564207c478..6f8c258cc2 100644 --- a/src/compiler/scala/tools/nsc/ScalaDoc.scala +++ b/src/compiler/scala/tools/nsc/ScalaDoc.scala @@ -33,7 +33,7 @@ object ScalaDoc { def process(args: Array[String]) { val docSettings : doc.Settings = new doc.Settings(error) reporter = new ConsoleReporter(docSettings) - val command = new CompilerCommand(List.fromArray(args), docSettings, error, false) + val command = new CompilerCommand(args.toList, docSettings, error, false) if (command.settings.version.value) reporter.info(null, versionMsg, true) else { diff --git a/src/compiler/scala/tools/nsc/ast/Trees.scala b/src/compiler/scala/tools/nsc/ast/Trees.scala index 12c5c9c46d..3293b08a39 100644 --- a/src/compiler/scala/tools/nsc/ast/Trees.scala +++ b/src/compiler/scala/tools/nsc/ast/Trees.scala @@ -1464,23 +1464,23 @@ trait Trees { } def transformTrees(trees: List[Tree]): List[Tree] = - List.mapConserve(trees)(transform) + trees mapConserve (transform(_)) def transformTemplate(tree: Template): Template = transform(tree: Tree).asInstanceOf[Template] def transformTypeDefs(trees: List[TypeDef]): List[TypeDef] = - List.mapConserve(trees)(tree => transform(tree).asInstanceOf[TypeDef]) + trees mapConserve (tree => transform(tree).asInstanceOf[TypeDef]) def transformValDef(tree: ValDef): ValDef = if (tree.isEmpty) tree else transform(tree).asInstanceOf[ValDef] def transformValDefs(trees: List[ValDef]): List[ValDef] = - List.mapConserve(trees)(transformValDef) + trees mapConserve (transformValDef(_)) def transformValDefss(treess: List[List[ValDef]]): List[List[ValDef]] = - List.mapConserve(treess)(transformValDefs) + treess mapConserve (transformValDefs(_)) def transformCaseDefs(trees: List[CaseDef]): List[CaseDef] = - List.mapConserve(trees)(tree => transform(tree).asInstanceOf[CaseDef]) + trees mapConserve (tree => transform(tree).asInstanceOf[CaseDef]) def transformIdents(trees: List[Ident]): List[Ident] = - List.mapConserve(trees)(tree => transform(tree).asInstanceOf[Ident]) + trees mapConserve (tree => transform(tree).asInstanceOf[Ident]) def transformStats(stats: List[Tree], exprOwner: Symbol): List[Tree] = - List.mapConserve(stats)(stat => + stats mapConserve (stat => if (exprOwner != currentOwner && stat.isTerm) atOwner(exprOwner)(transform(stat)) else transform(stat)) filter (EmptyTree !=) def transformUnit(unit: CompilationUnit) { unit.body = transform(unit.body) } @@ -1789,7 +1789,7 @@ trait Trees { override def end: Int = original.pos.end override def underlying = original.pos.underlying override def focus = original.pos.focus - override def show = "["+underlying.show+"]" + override def show = "["+ underlying.show +"]" } } diff --git a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala index 2630bf374d..abcca4b79c 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/SymbolicXMLBuilder.scala @@ -173,7 +173,7 @@ abstract class SymbolicXMLBuilder(make: TreeBuilder, p: Parsers # Parser, preser def parseAttribute(pos: Position, s: String): Tree = { val ns = xml.Utility.parseAttributeValue(s) val ts: ListBuffer[Tree] = new ListBuffer - val it = ns.elements + val it = ns.iterator while (it.hasNext) it.next match { case Text(s) => ts += text(pos, s) // makeText1(Literal(Constant(s))) case EntityRef(s) => ts += entityRef(pos, s) @@ -209,7 +209,7 @@ abstract class SymbolicXMLBuilder(make: TreeBuilder, p: Parsers # Parser, preser //var _buffer = New( _scala_xml_NodeBuffer, List(Nil)) var as:List[Tree] = ValDef(NoMods, _buf, TypeTree(), New( _scala_xml_NodeBuffer, List(Nil)))::Nil - val it = args.elements + val it = args.iterator while (it.hasNext) { val t = it.next if (!isEmptyText(t)) { @@ -264,7 +264,7 @@ abstract class SymbolicXMLBuilder(make: TreeBuilder, p: Parsers # Parser, preser } /* DEBUG */ - val attrIt = attrMap.keys + val attrIt = attrMap.keysIterator while (attrIt.hasNext) { val z = attrIt.next if (z startsWith "xmlns") { // handle namespace @@ -317,7 +317,7 @@ abstract class SymbolicXMLBuilder(make: TreeBuilder, p: Parsers # Parser, preser tlist2 = t :: tlist2 } - var it = attrMap.elements + var it = attrMap.iterator while (it.hasNext) { val ansk = it.next getPrefix(ansk._1) match { diff --git a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala index 3c67b56e0b..8d334a9d78 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/TreeBuilder.scala @@ -64,11 +64,11 @@ abstract class TreeBuilder { def init: Traverser = { buf.clear; this } override def traverse(tree: Tree): Unit = tree match { case Bind(name, Typed(tree1, tpt)) => - if ((name != nme.WILDCARD) && (buf.elements forall (name !=))) + if ((name != nme.WILDCARD) && (buf.iterator forall (name !=))) buf += ((name, if (treeInfo.mayBeTypePat(tpt)) TypeTree() else tpt, tree.pos)) traverse(tree1) case Bind(name, tree1) => - if ((name != nme.WILDCARD) && (buf.elements forall (name !=))) + if ((name != nme.WILDCARD) && (buf.iterator forall (name !=))) buf += ((name, TypeTree(), tree.pos)) traverse(tree1) case _ => @@ -231,33 +231,33 @@ abstract class TreeBuilder { * * 1. * - * for (val P <- G) E ==> G.foreach (P => E) + * for (P <- G) E ==> G.foreach (P => E) * * Here and in the following (P => E) is interpreted as the function (P => E) * if P is a a variable pattern and as the partial function { case P => E } otherwise. * * 2. * - * for (val P <- G) yield E ==> G.map (P => E) + * for (P <- G) yield E ==> G.map (P => E) * * 3. * - * for (val P_1 <- G_1; val P_2 <- G_2; ...) ... + * for (P_1 <- G_1; val P_2 <- G_2; ...) ... * ==> - * G_1.flatMap (P_1 => for (val P_2 <- G_2; ...) ...) + * G_1.flatMap (P_1 => for (P_2 <- G_2; ...) ...) * * 4. * - * for (val P <- G; E; ...) ... + * for (P <- G; E; ...) ... * => - * for (val P <- G.filter (P => E); ...) ... + * for (P <- G.filter (P => E); ...) ... * * 5. For N < MaxTupleArity: * - * for (val P_1 <- G; val P_2 = E_2; val P_N = E_N; ...) + * for (P_1 <- G; val P_2 = E_2; val P_N = E_N; ...) * ==> - * for (val TupleN(P_1, P_2, ... P_N) <- - * for (val x_1 @ P_1 <- G) yield { + * for (TupleN(P_1, P_2, ... P_N) <- + * for (x_1 @ P_1 <- G) yield { * val x_2 @ P_2 = E_2 * ... * val x_N & P_N = E_N @@ -415,7 +415,7 @@ abstract class TreeBuilder { val firstDef = ValDef(Modifiers(PRIVATE | LOCAL | SYNTHETIC | (mods.flags & LAZY)), tmp, TypeTree(), matchExpr) var cnt = 0 - val restDefs = for (val (vname, tpt, pos) <- vars) yield atPos(pos) { + val restDefs = for ((vname, tpt, pos) <- vars) yield atPos(pos) { cnt = cnt + 1 ValDef(mods, vname, tpt, Select(Ident(tmp), newTermName("_" + cnt))) } diff --git a/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala b/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala index b57bb2df16..4267b5c95e 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/BasicBlocks.scala @@ -84,13 +84,15 @@ trait BasicBlocks { override def toList: List[Instruction] = { if (closed && touched) - instructionList = List.fromArray(instrs) + instructionList = instrs.toList instructionList } /** Return an iterator over the instructions in this basic block. */ - def elements: Iterator[Instruction] = - if (closed) instrs.elements else instructionList.reverse.elements + def iterator: Iterator[Instruction] = + if (closed) instrs.iterator else instructionList.reverse.iterator + + @deprecated def elements = iterator /** return the underlying array of instructions */ def getArray: Array[Instruction] = { @@ -436,7 +438,7 @@ trait BasicBlocks { * in different code 'chunks' than the rest of the method. */ def predecessors: List[BasicBlock] = { - preds = code.blocks.elements.filter (_.successors.contains(this)).toList + preds = code.blocks.iterator.filter (_.successors.contains(this)).toList preds } diff --git a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala index 76a6498e2d..98237ef504 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala @@ -507,7 +507,7 @@ abstract class GenICode extends SubComponent { tmp = ctx.makeLocal(tree.pos, tree.tpe, "tmp") } def duplicateFinalizer = - (new DuplicateLabels(ctx.labels.keySet))(ctx, finalizer) + (new DuplicateLabels(ctx.labels.keys))(ctx, finalizer) var handlers = for (CaseDef(pat, _, body) <- catches.reverse) yield pat match { @@ -1526,7 +1526,7 @@ abstract class GenICode extends SubComponent { assert(ctx.clazz.symbol eq cls, "Classes are not the same: " + ctx.clazz.symbol + ", " + cls) - for (f <- cls.info.decls.elements) + for (f <- cls.info.decls.iterator) if (!f.isMethod && f.isTerm) ctx.clazz.addField(new IField(f)); } diff --git a/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala b/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala index 13bb286517..d69bf7dc1e 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala @@ -156,7 +156,7 @@ trait Linearizers { self: ICodes => if (m.code.startBlock.predecessors eq Nil) blocks else - m.code.startBlock :: (blocks.remove(_ == m.code.startBlock)) + m.code.startBlock :: (blocks.filterNot(_ == m.code.startBlock)) } def linearizeAt(m: IMethod, start: BasicBlock): List[BasicBlock] = { diff --git a/src/compiler/scala/tools/nsc/backend/icode/Members.scala b/src/compiler/scala/tools/nsc/backend/icode/Members.scala index a13c8751db..aba565d556 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/Members.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/Members.scala @@ -79,7 +79,7 @@ trait Members { self: ICodes => /* This method applies the given function to each basic block. */ def traverseFeedBack(f: (BasicBlock, HashMap[BasicBlock, Boolean]) => Unit) = { val visited : HashMap[BasicBlock, Boolean] = new HashMap; - visited ++= blocks.elements.map(x => (x, false)); + visited ++= blocks.iterator.map(x => (x, false)); var blockToVisit: List[BasicBlock] = List(startBlock) @@ -274,7 +274,7 @@ trait Members { self: ICodes => } while (nextBlock.isDefinedAt(succ)) bb.close } else - bb = nextBlock.keys.next + bb = nextBlock.keysIterator.next } } diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala index 144223f866..23a28b4a2d 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/DataFlowAnalysis.scala @@ -56,7 +56,7 @@ trait DataFlowAnalysis[L <: CompleteLattice] { while (!worklist.isEmpty) { if (stat) iterations += 1 //Console.println("worklist in: " + worklist); - val point = worklist.elements.next; worklist -= point; visited += point; + val point = worklist.iterator.next; worklist -= point; visited += point; //Console.println("taking out point: " + point + " worklist out: " + worklist); val output = f(point, in(point)) @@ -88,7 +88,7 @@ trait DataFlowAnalysis[L <: CompleteLattice] { def backwardAnalysis(f: (P, lattice.Elem) => lattice.Elem): Unit = while (!worklist.isEmpty) { if (stat) iterations += 1 - val point = worklist.elements.next; worklist -= point + val point = worklist.iterator.next; worklist -= point out(point) = lattice.lub(point.successors map in.apply) val input = f(point, out(point)) diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala index c5464a272e..6ffd1645db 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/TypeFlowAnalysis.scala @@ -87,12 +87,12 @@ abstract class TypeFlowAnalysis { val resultingLocals = new VarBinding - for (binding1 <- env1.elements) { + for (binding1 <- env1.iterator) { val tp2 = env2(binding1._1) resultingLocals += ((binding1._1, typeLattice.lub2(binding1._2, tp2))) } - for (binding2 <- env2.elements if resultingLocals(binding2._1) eq typeLattice.bottom) { + for (binding2 <- env2.iterator if resultingLocals(binding2._1) eq typeLattice.bottom) { val tp1 = env1(binding2._1) resultingLocals += ((binding2._1, typeLattice.lub2(binding2._2, tp1))) } diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index ef39bb3f0d..ec58e71a50 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -464,7 +464,7 @@ abstract class GenJVM extends SubComponent { return val length = buf.position(); - val arr = buf.array().subArray(0, length); + val arr = buf.array().slice(0, length); val attr = jmember.getContext().JOtherAttribute(jmember.getJClass(), jmember, @@ -476,7 +476,7 @@ abstract class GenJVM extends SubComponent { def addInnerClasses(jclass: JClass) { def addOwnInnerClasses(cls: Symbol) { - for (sym <- cls.info.decls.elements if sym.isClass) + for (sym <- cls.info.decls.iterator if sym.isClass) innerClasses = innerClasses + sym; } // add inner classes which might not have been referenced yet diff --git a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala index 33abd62ee8..39fe0f4733 100644 --- a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala +++ b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala @@ -430,7 +430,7 @@ abstract class GenMSIL extends SubComponent { } val length = buf.position() - buf.array().subArray(0, length) + buf.array().slice(0, length) } def writeAssembly() { diff --git a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala index 3847c97a18..0c6f7cad23 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala @@ -135,7 +135,7 @@ abstract class DeadCodeElimination extends SubComponent { def mark { // log("Starting with worklist: " + worklist) while (!worklist.isEmpty) { - val (bb, idx) = worklist.elements.next + val (bb, idx) = worklist.iterator.next worklist -= ((bb, idx)) if (settings.debug.value) log("Marking instr: \tBB_" + bb + ": " + idx + " " + bb(idx)) diff --git a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala index 0ac08e0d6a..23a100ba44 100644 --- a/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala +++ b/src/compiler/scala/tools/nsc/backend/opt/Inliners.scala @@ -83,7 +83,7 @@ abstract class Inliners extends SubComponent { /* Map 'original' blocks to the ones inlined in the caller. */ val inlinedBlock: Map[BasicBlock, BasicBlock] = new HashMap - val varsInScope: Set[Local] = new HashSet[Local] ++ block.varsInScope.elements + val varsInScope: Set[Local] = new HashSet[Local] ++ block.varsInScope.iterator val instrBefore = block.toList.takeWhile { case i @ SCOPE_ENTER(l) => varsInScope += l diff --git a/src/compiler/scala/tools/nsc/doc/DefaultDocDriver.scala b/src/compiler/scala/tools/nsc/doc/DefaultDocDriver.scala index a7d38d8245..adc48f6943 100644 --- a/src/compiler/scala/tools/nsc/doc/DefaultDocDriver.scala +++ b/src/compiler/scala/tools/nsc/doc/DefaultDocDriver.scala @@ -109,7 +109,7 @@ abstract class DefaultDocDriver extends DocDriver with ModelFrames with ModelToX for (pp <- d.sym.tpe.parents) subClasses(pp.typeSymbol) += d } copyResources - lazy val packages0 = sort(allClasses.keySet) + lazy val packages0 = sort(allClasses.keys) new AllPackagesFrame with Frame { def packages = packages0 } new PackagesContentFrame with Frame { def packages = packages0 } new NavigationFrame with Frame { } diff --git a/src/compiler/scala/tools/nsc/doc/DocUtil.scala b/src/compiler/scala/tools/nsc/doc/DocUtil.scala index 4012143535..096c1b8374 100644 --- a/src/compiler/scala/tools/nsc/doc/DocUtil.scala +++ b/src/compiler/scala/tools/nsc/doc/DocUtil.scala @@ -90,14 +90,14 @@ object DocUtil { def merge[T,S <: Ordered[S]](ts0: ListMap[T,TreeSet[S]], ts1: ListMap[T,TreeSet[S]]): ListMap[T,TreeSet[S]] = { var ts = ts0 - for (t <- ts1.elements) { + for (t <- ts1.iterator) { if (!ts.contains(t._1)) ts = ts.updated(t._1, new TreeSet[S]); ts = ts.updated(t._1, merge(ts(t._1), t._2)) } ts } - implicit def coerceIterable[T](list : Iterable[T]) = NodeWrapper(list.elements) + implicit def coerceIterable[T](list : Iterable[T]) = NodeWrapper(list.iterator) implicit def coerceIterator[T](list : Iterator[T]) = NodeWrapper(list) case class NodeWrapper[T](list : Iterator[T]) { diff --git a/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala b/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala index 8b900e44a7..7261043505 100644 --- a/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala +++ b/src/compiler/scala/tools/nsc/doc/ModelExtractor.scala @@ -231,7 +231,7 @@ trait ModelExtractor { val str = flagsToString(arg.flags) assert((arg hasFlag PRIVATE) && (arg hasFlag LOCAL), arg) val argName = arg.name.toString.trim - val actual = sym.tpe.decls.elements.find(e => { + val actual = sym.tpe.decls.iterator.find(e => { val eName = e.name.toString.trim; argName == eName && { val str = flagsToString(e.flags); @@ -243,7 +243,7 @@ trait ModelExtractor { }); } object decls extends mutable.LinkedHashMap[Symbol, Member] { - sym.tpe.decls.elements.foreach(e => { + sym.tpe.decls.iterator.foreach(e => { if (!constructorArgs.contains(e)) { val m = Member(e) if (!m.isEmpty && !this.contains(e)) this.put(e, m.get) @@ -254,7 +254,7 @@ trait ModelExtractor { def members(c: Category): Iterable[Member] = members0(c.f) object inherited extends mutable.LinkedHashMap[Symbol, List[Member]]() { override def default(tpe: Symbol) = Nil - for (m <- sym.tpe.members if !sym.tpe.decls.elements.contains(m) && + for (m <- sym.tpe.members if !sym.tpe.decls.iterator.contains(m) && (Values.f(m) || Methods.f(m))) { val o = m.overridingSymbol(sym) if (o == NoSymbol) { diff --git a/src/compiler/scala/tools/nsc/doc/ModelToXML.scala b/src/compiler/scala/tools/nsc/doc/ModelToXML.scala index b3c1a6ab26..dc8f6a1771 100644 --- a/src/compiler/scala/tools/nsc/doc/ModelToXML.scala +++ b/src/compiler/scala/tools/nsc/doc/ModelToXML.scala @@ -243,7 +243,7 @@ trait ModelToXML extends ModelExtractor { def longList(entity: ClassOrObject, category: Category)(implicit from: Frame): NodeSeq = { val xs = entity.members(category) - if (!xs.elements.hasNext) + if (!xs.iterator.hasNext) NodeSeq.Empty else Group( <table cellpadding="3" class="member-detail" summary=""> @@ -255,7 +255,7 @@ trait ModelToXML extends ModelExtractor { def shortList(entity: ClassOrObject, category: Category)(implicit from: Frame): NodeSeq = { val xs = entity.members(category) var seq: NodeSeq = NodeSeq.Empty - if (xs.elements.hasNext) { + if (xs.iterator.hasNext) { // alphabetic val set = new scala.collection.immutable.TreeSet[entity.Member]()(mA => new Ordered[entity.Member] { def compare(mB: entity.Member): Int = diff --git a/src/compiler/scala/tools/nsc/io/AbstractFile.scala b/src/compiler/scala/tools/nsc/io/AbstractFile.scala index 0c793eb9de..169c230c69 100644 --- a/src/compiler/scala/tools/nsc/io/AbstractFile.scala +++ b/src/compiler/scala/tools/nsc/io/AbstractFile.scala @@ -151,7 +151,9 @@ abstract class AbstractFile extends AnyRef with Iterable[AbstractFile] { } /** Returns all abstract subfiles of this abstract directory. */ - def elements: Iterator[AbstractFile] + def iterator: Iterator[AbstractFile] + + @deprecated def elements = iterator /** Returns the abstract file in this abstract directory with the specified * name. If there is no such file, returns <code>null</code>. The argument diff --git a/src/compiler/scala/tools/nsc/io/PlainFile.scala b/src/compiler/scala/tools/nsc/io/PlainFile.scala index 8b4a867d76..6b11295d49 100644 --- a/src/compiler/scala/tools/nsc/io/PlainFile.scala +++ b/src/compiler/scala/tools/nsc/io/PlainFile.scala @@ -54,11 +54,11 @@ class PlainFile(val file: File) extends AbstractFile { def lastModified: Long = file.lastModified() /** Returns all abstract subfiles of this abstract directory. */ - def elements: Iterator[AbstractFile] = { + def iterator: Iterator[AbstractFile] = { assert(isDirectory, "not a directory '" + this + "'") val names: Array[String] = file.list() if ((names eq null) || names.length == 0) Iterator.empty - else names.elements.map { name: String => new File(file, name) } + else names.iterator.map { name: String => new File(file, name) } .filter(_.exists).map(file => new PlainFile(file)) } diff --git a/src/compiler/scala/tools/nsc/io/VirtualDirectory.scala b/src/compiler/scala/tools/nsc/io/VirtualDirectory.scala index 29ec6b2344..403d59d289 100644 --- a/src/compiler/scala/tools/nsc/io/VirtualDirectory.scala +++ b/src/compiler/scala/tools/nsc/io/VirtualDirectory.scala @@ -31,7 +31,7 @@ extends AbstractFile { // the toList is so that the directory may continue to be // modified while its elements are iterated - def elements = files.values.toList.elements + def iterator = files.values.toList.iterator override def lookupName(name: String, directory: Boolean): AbstractFile = { files.get(name) match { diff --git a/src/compiler/scala/tools/nsc/io/VirtualFile.scala b/src/compiler/scala/tools/nsc/io/VirtualFile.scala index 36e48614bf..0b9c703757 100644 --- a/src/compiler/scala/tools/nsc/io/VirtualFile.scala +++ b/src/compiler/scala/tools/nsc/io/VirtualFile.scala @@ -72,7 +72,7 @@ class VirtualFile(val name: String, _path: String) extends AbstractFile { def lastModified: Long = Math.MIN_LONG /** Returns all abstract subfiles of this abstract directory. */ - def elements: Iterator[AbstractFile] = { + def iterator: Iterator[AbstractFile] = { assert(isDirectory, "not a directory '" + this + "'") Iterator.empty } diff --git a/src/compiler/scala/tools/nsc/io/ZipArchive.scala b/src/compiler/scala/tools/nsc/io/ZipArchive.scala index af595720c5..ab730128bd 100644 --- a/src/compiler/scala/tools/nsc/io/ZipArchive.scala +++ b/src/compiler/scala/tools/nsc/io/ZipArchive.scala @@ -85,9 +85,9 @@ final class ZipArchive(file: File, val archive: ZipFile) extends PlainFile(file) override def isDirectory = true /** Returns all abstract subfiles of this abstract directory. */ - override def elements: Iterator[AbstractFile] = { + override def iterator: Iterator[AbstractFile] = { if (root eq null) load() - root.elements + root.iterator } /** @@ -189,7 +189,7 @@ final class ZipArchive(file: File, val archive: ZipFile) extends PlainFile(file) override def lastModified: Long = if (entry ne null) entry.getTime() else super.lastModified - override def elements: Iterator[AbstractFile] = entries.values + override def iterator: Iterator[AbstractFile] = entries.valuesIterator override def lookupName(name: String, directory: Boolean): AbstractFile = entries.get(if (directory) name + "/" else name) match { @@ -241,9 +241,9 @@ final class URLZipArchive(url: URL) extends AbstractFile { def output = throw new Error("unsupported") - override def elements: Iterator[AbstractFile] = { + override def iterator: Iterator[AbstractFile] = { if (root eq null) load() - root.elements + root.iterator } override def lookupName(name: String, directory: Boolean): AbstractFile = { @@ -324,7 +324,7 @@ final class URLZipArchive(url: URL) extends AbstractFile { override def lastModified: Long = if (entry ne null) entry.getTime() else super.lastModified - override def elements: Iterator[AbstractFile] = entries.values + override def iterator: Iterator[AbstractFile] = entries.valuesIterator override def lookupName(name: String, directory: Boolean): AbstractFile = entries.get(if (directory) name + "/" else name) match { diff --git a/src/compiler/scala/tools/nsc/symtab/Constants.scala b/src/compiler/scala/tools/nsc/symtab/Constants.scala index 116e34f97b..04e2e5181c 100644 --- a/src/compiler/scala/tools/nsc/symtab/Constants.scala +++ b/src/compiler/scala/tools/nsc/symtab/Constants.scala @@ -201,7 +201,7 @@ trait Constants { def escapedStringValue: String = { def escape(text: String): String = { val buf = new StringBuilder - for (c <- text.elements) + for (c <- text.iterator) if (c.isControl) buf.append("\\0" + toOctalString(c.asInstanceOf[Int])) else diff --git a/src/compiler/scala/tools/nsc/symtab/Scopes.scala b/src/compiler/scala/tools/nsc/symtab/Scopes.scala index c42c3219ba..29a01cf9c1 100644 --- a/src/compiler/scala/tools/nsc/symtab/Scopes.scala +++ b/src/compiler/scala/tools/nsc/symtab/Scopes.scala @@ -344,7 +344,9 @@ trait Scopes { /** Return all symbols as an interator in the order they were entered in this scope. */ - def elements: Iterator[Symbol] = toList.elements + def iterator: Iterator[Symbol] = toList.iterator + + @deprecated def elements = iterator def filter(p: Symbol => Boolean): Scope = if (!(toList forall p)) newScope(toList filter p) else this diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala index b24aadb909..8758239629 100644 --- a/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala +++ b/src/compiler/scala/tools/nsc/symtab/SymbolLoaders.scala @@ -175,7 +175,7 @@ abstract class SymbolLoaders { } // do classes first - for ((name, file) <- classes.elements) { + for ((name, file) <- classes.iterator) { val loader = if (!file.isSourceFile) { new ClassfileLoader(file.classFile, file.sourceFile, file.sourcePath) } else { @@ -186,7 +186,7 @@ abstract class SymbolLoaders { } // packages second - for ((name, file) <- packages.elements) + for ((name, file) <- packages.iterator) enterPackage(name, newPackageLoader(file)) // if there's a $member object, enter its members as well. @@ -198,7 +198,7 @@ abstract class SymbolLoaders { def openPackageModule(m: Symbol) = { val owner = m.owner - for (member <- m.info.decls.elements) { + for (member <- m.info.decls.iterator) { // todo: handle overlapping definitions in some way: mark as errors // or treat as abstractions. For now the symbol in the package module takes precedence. for (existing <- owner.info.decl(member.name).alternatives) @@ -235,7 +235,7 @@ abstract class SymbolLoaders { super.doComplete(root) - for (namespace <- namespaces.elements) { + for (namespace <- namespaces.iterator) { val oldPkg = root.info.decls lookup newTermName(namespace) if (oldPkg == NoSymbol) enterPackage(namespace, new NamespaceLoader(new classPath0.Context(List()))) @@ -243,7 +243,7 @@ abstract class SymbolLoaders { } // import the CLR types contained in the package (namespace) - for ((name, typ) <- types.elements) { + for ((name, typ) <- types.iterator) { assert(namespace == typ.Namespace, typ.FullName) if (typ.IsDefined(clrTypes.SCALA_SYMTAB_ATTR, false)) { diff --git a/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala b/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala index e663011d7c..c5218346b6 100644 --- a/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala +++ b/src/compiler/scala/tools/nsc/symtab/SymbolWalker.scala @@ -24,11 +24,11 @@ trait SymbolWalker { def f(t : Tree) : Unit = { if (visited.add(t)) return def fs(l : List[Tree]) : Unit = { - val i = l.elements + val i = l.iterator while (i.hasNext) f(i.next) } def fss(l : List[List[Tree]]) : Unit = { - val i = l.elements + val i = l.iterator while (i.hasNext) fs(i.next) } if (t.isInstanceOf[StubTree]) return @@ -109,8 +109,8 @@ trait SymbolWalker { (t) match { case (t : MemberDef) if t.symbol != null && t.symbol != NoSymbol => val annotated = if (sym.isModule) sym.moduleClass else sym - val i = t.mods.annotations.elements - val j = annotated.attributes.elements + val i = t.mods.annotations.iterator + val j = annotated.attributes.iterator while (i.hasNext && j.hasNext) { val tree = i.next.constr val ainfo = j.next @@ -156,8 +156,8 @@ trait SymbolWalker { case tree : UnApply => f(tree.fun); fs(tree.args) case tree : AppliedTypeTree => if (tree.tpe != null) { - val i = tree.tpe.typeArgs.elements - val j = tree.args.elements + val i = tree.tpe.typeArgs.iterator + val j = tree.args.iterator while (i.hasNext && j.hasNext) { val tpe = i.next val arg = j.next diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index 6411ddf532..33fdfaf76b 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -1047,7 +1047,7 @@ trait Types { baseTypeSeqCache.normalize(parents) // println("normalized baseTypeSeq of "+typeSymbol+"/"+parents+": "+baseTypeSeqCache)//DEBUG } - //Console.println("baseTypeSeq(" + typeSymbol + ") = " + List.fromArray(baseTypeSeqCache));//DEBUG + //Console.println("baseTypeSeq(" + typeSymbol + ") = " + baseTypeSeqCache.toList);//DEBUG } if (baseTypeSeqCache eq undetBaseTypeSeq) throw new TypeError("illegal cyclic inheritance involving " + typeSymbol) @@ -1176,7 +1176,7 @@ trait Types { case ps @ (_ :: ps1) => (ps ne parents) || (ps1 exists contributesAbstractMembers) || - (decls.elements exists (m => m.isDeferred && isVisible(m))) + (decls.iterator exists (m => m.isDeferred && isVisible(m))) case _ => false }) @@ -1296,7 +1296,7 @@ trait Types { val lastRefs = Array(refs(0), refs(1)) state = Initialized var change = false - for ((from, targets) <- refs(NonExpansive).elements) + for ((from, targets) <- refs(NonExpansive).iterator) for (target <- targets) { var thatInfo = classInfo(target) if (thatInfo.state != Initialized) @@ -1304,7 +1304,7 @@ trait Types { addRefs(NonExpansive, from, thatInfo.getRefs(NonExpansive, target)) addRefs(Expansive, from, thatInfo.getRefs(Expansive, target)) } - for ((from, targets) <- refs(Expansive).elements) + for ((from, targets) <- refs(Expansive).iterator) for (target <- targets) { var thatInfo = classInfo(target) addRefs(Expansive, from, thatInfo.getRefs(NonExpansive, target)) @@ -2376,7 +2376,7 @@ A type's typeSymbol should never be inspected directly. else mkSuperType(thistp1, supertp1) case TypeRef(pre, sym, args) => val pre1 = this(pre) - //val args1 = List.mapConserve(args)(this) + //val args1 = args mapConserve this(_) val args1 = if (args.isEmpty) args else { val tparams = sym.typeParams @@ -4175,11 +4175,10 @@ A type's typeSymbol should never be inspected directly. val glbThisType = glbRefined.typeSymbol.thisType def glbsym(proto: Symbol): Symbol = { val prototp = glbThisType.memberInfo(proto) - val syms = for { - val t <- ts - val alt <- t.nonPrivateMember(proto.name).alternatives - glbThisType.memberInfo(alt) matches prototp - } yield alt + val syms = for (t <- ts; + alt <- (t.nonPrivateMember(proto.name).alternatives); + if glbThisType.memberInfo(alt) matches prototp + ) yield alt val symtypes = syms map glbThisType.memberInfo assert(!symtypes.isEmpty) proto.cloneSymbol(glbRefined.typeSymbol).setInfo( @@ -4210,7 +4209,7 @@ A type's typeSymbol should never be inspected directly. try { globalGlbDepth += 1 val dss = ts flatMap refinedToDecls - for (ds <- dss; val sym <- ds.elements) + for (ds <- dss; val sym <- ds.iterator) if (globalGlbDepth < globalGlbLimit && !(glbThisType specializes sym)) try { addMember(glbThisType, glbRefined, glbsym(sym)) diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala b/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala index 3563c69646..19b24d0f67 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/AbstractFileReader.scala @@ -46,7 +46,7 @@ class AbstractFileReader(val file: AbstractFile) { */ def nextBytes(len: Int): Array[Byte] = { bp += len - buf.subArray(bp - len, bp) + buf.slice(bp - len, bp) } /** read a character diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala index 6753ae3194..510183a22d 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala @@ -682,7 +682,7 @@ abstract class ICodeReader extends ClassfileParser { var otherBlock: BasicBlock = null var disableJmpTarget = false - for ((pc, instr) <- instrs.elements) { + for ((pc, instr) <- instrs.iterator) { // Console.println("> " + pc + ": " + instr); if (jmpTargets contains pc) { otherBlock = blocks(pc) diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala index 0f610f2538..052fe1647e 100644 --- a/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala +++ b/src/compiler/scala/tools/nsc/symtab/classfile/Pickler.scala @@ -178,7 +178,7 @@ abstract class Pickler extends SubComponent { putType(lo); putType(hi) case RefinedType(parents, decls) => val rclazz = tp.typeSymbol - for (m <- decls.elements) + for (m <- decls.iterator) if (m.owner != rclazz) assert(false, "bad refinement member "+m+" of "+tp+", owner = "+m.owner) putSymbol(rclazz); putTypes(parents); putSymbols(decls.toList) case ClassInfoType(parents, decls, clazz) => diff --git a/src/compiler/scala/tools/nsc/symtab/clr/CLRTypes.scala b/src/compiler/scala/tools/nsc/symtab/clr/CLRTypes.scala index ff51038581..a0c2b07176 100644 --- a/src/compiler/scala/tools/nsc/symtab/clr/CLRTypes.scala +++ b/src/compiler/scala/tools/nsc/symtab/clr/CLRTypes.scala @@ -161,7 +161,7 @@ abstract class CLRTypes { */ private def findAssembly(name: String): Assembly = { // see if the assembly is referenced directly - for (file <- global.assemrefs.elements if file.getName() == name) { + for (file <- global.assemrefs.iterator if file.getName() == name) { val assem = Assembly.LoadFrom(file.getPath()) if (assem != null) { global.assemrefs -= file @@ -170,7 +170,7 @@ abstract class CLRTypes { } } // look in directories specified with the '-r' option - for (dir <- global.assemrefs.elements if dir.isDirectory()) { + for (dir <- global.assemrefs.iterator if dir.isDirectory()) { val file = new File(dir, name) if (file.exists()) { val assem = Assembly.LoadFrom(file.getPath()) @@ -196,7 +196,7 @@ abstract class CLRTypes { /** Load the rest of the assemblies specified with the '-r' option */ private def findAllAssemblies() { - for (file <- global.assemrefs.elements) { + for (file <- global.assemrefs.iterator) { if (file.isFile()) { //System.out.println("Loading assembly " + file) val assem = Assembly.LoadFrom(file.getPath()) diff --git a/src/compiler/scala/tools/nsc/symtab/clr/TypeParser.scala b/src/compiler/scala/tools/nsc/symtab/clr/TypeParser.scala index 3a0ef52113..81b2df32ee 100644 --- a/src/compiler/scala/tools/nsc/symtab/clr/TypeParser.scala +++ b/src/compiler/scala/tools/nsc/symtab/clr/TypeParser.scala @@ -222,7 +222,7 @@ abstract class TypeParser { } } */ - for (method <- methodsSet.elements) + for (method <- methodsSet.iterator) if (!method.IsPrivate() && !method.IsAssembly() && !method.IsFamilyAndAssembly()) createMethod(method); diff --git a/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala b/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala index 0d94658118..b7418f7827 100644 --- a/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala +++ b/src/compiler/scala/tools/nsc/transform/AddInterfaces.scala @@ -133,7 +133,7 @@ abstract class AddInterfaces extends InfoTransform { if ((ifaceDecls lookup nme.MIXIN_CONSTRUCTOR) == NoSymbol) decls enter (implClass.newMethod(implClass.pos, nme.MIXIN_CONSTRUCTOR) setInfo MethodType(List(), UnitClass.tpe)) - for (sym <- ifaceDecls.elements) { + for (sym <- ifaceDecls.iterator) { if (isInterfaceMember(sym)) { if (needsImplMethod(sym)) { val impl = sym.cloneSymbol(implClass).setInfo(sym.info).resetFlag(lateDEFERRED) diff --git a/src/compiler/scala/tools/nsc/transform/Constructors.scala b/src/compiler/scala/tools/nsc/transform/Constructors.scala index 31ef241ac8..41137e0798 100644 --- a/src/compiler/scala/tools/nsc/transform/Constructors.scala +++ b/src/compiler/scala/tools/nsc/transform/Constructors.scala @@ -249,7 +249,7 @@ abstract class Constructors extends Transform { // first traverse all definitions except outeraccesors // (outeraccessors are avoided in accessTraverser) - for (stat <- defBuf.elements) accessTraverser.traverse(stat) + for (stat <- defBuf.iterator) accessTraverser.traverse(stat) // then traverse all bodies of outeraccessors which are accessed themselves // note: this relies on the fact that an outer accessor never calls another diff --git a/src/compiler/scala/tools/nsc/transform/LambdaLift.scala b/src/compiler/scala/tools/nsc/transform/LambdaLift.scala index 8d9069ca7b..52c75fc70e 100644 --- a/src/compiler/scala/tools/nsc/transform/LambdaLift.scala +++ b/src/compiler/scala/tools/nsc/transform/LambdaLift.scala @@ -182,7 +182,7 @@ abstract class LambdaLift extends InfoTransform { } */ def freeVars(sym: Symbol): Iterator[Symbol] = free.get(sym) match { - case Some(ss) => ss.elements + case Some(ss) => ss.iterator case None => Iterator.empty } @@ -238,12 +238,12 @@ abstract class LambdaLift extends InfoTransform { do { changedFreeVars = false for (caller <- called.keys; - callee <- called(caller).elements; + callee <- called(caller).iterator; fv <- freeVars(callee)) markFree(fv, caller) } while (changedFreeVars); - for (sym <- renamable.elements) { + for (sym <- renamable.iterator) { val base = if (sym.isAnonymousFunction && sym.owner.isMethod) sym.name.toString() + "$" + sym.owner.name.toString() + "$" @@ -256,9 +256,9 @@ abstract class LambdaLift extends InfoTransform { atPhase(phase.next) { for (owner <- free.keys) { if (settings.debug.value) - log("free(" + owner + owner.locationString + ") = " + free(owner).elements.toList); + log("free(" + owner + owner.locationString + ") = " + free(owner).iterator.toList); proxies(owner) = - for (fv <- free(owner).elements.toList) yield { + for (fv <- free(owner).iterator.toList) yield { val proxy = owner.newValue(owner.pos, fv.name) .setFlag(if (owner.isClass) PARAMACCESSOR | PRIVATE | LOCAL else PARAM) .setFlag(SYNTHETIC) diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala index c41ade3ea7..f1ee06db45 100644 --- a/src/compiler/scala/tools/nsc/transform/Mixin.scala +++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala @@ -749,7 +749,7 @@ abstract class Mixin extends InfoTransform { // parents != baseClasses.map(_.tpe): bug #1535 val fields = for { sc <- clazz.info.baseClasses.map(_.tpe) - field <- sc.decls.elements.toList + field <- sc.decls.iterator.toList if needsBitmapField(sc, field) } yield field @@ -764,7 +764,7 @@ abstract class Mixin extends InfoTransform { */ def buildFieldPositions(clazz: Symbol) { var fields = usedBits(clazz) - for (f <- clazz.info.decls.elements if needsInitFlag(f) || f.hasFlag(LAZY)) { + for (f <- clazz.info.decls.iterator if needsInitFlag(f) || f.hasFlag(LAZY)) { if (settings.debug.value) log(f.fullNameString + " -> " + fields) fieldOffset(f) = fields fields += 1 diff --git a/src/compiler/scala/tools/nsc/transform/Reifiers.scala b/src/compiler/scala/tools/nsc/transform/Reifiers.scala index 9a0a1b6526..5973fa07e8 100644 --- a/src/compiler/scala/tools/nsc/transform/Reifiers.scala +++ b/src/compiler/scala/tools/nsc/transform/Reifiers.scala @@ -188,7 +188,7 @@ trait Reifiers { case Some(tgt) => tgt } def hasAllTargets: Boolean = - targets.elements.map(_._2).forall { + targets.iterator.map(_._2).forall { case Some(_) => true case None => false } diff --git a/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala b/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala index c933b281cb..6d5ad19f5c 100644 --- a/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala +++ b/src/compiler/scala/tools/nsc/typechecker/IdeSupport.scala @@ -49,7 +49,7 @@ trait IdeSupport extends Analyzer { val oldType = oldTypeFor(sym0) oldType match { case PolyType(xxx,_) => - val i = xxx.elements + val i = xxx.iterator var pause = false while (i.hasNext) { if (i.next.pos == util.NoPosition) pause = true diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala index 3e86181b73..a828e9165e 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala @@ -467,13 +467,13 @@ self: Analyzer => } /** A candidate for best applicable info wrt `improves` */ - val best = (NoImplicitInfo /: applicable.keySet) ( + val best = (NoImplicitInfo /: applicable.keys) ( (best, alt) => if (improves(alt, best)) alt else best) if (best == NoImplicitInfo) SearchFailure else { /** The list of all applicable infos which are not improved upon by `best`. */ - val competing = applicable.keySet dropWhile (alt => best == alt || improves(best, alt)) - if (!competing.isEmpty) ambiguousImplicitError(best, competing.elements.next, "both", "and", "") // !!! streamline when new collection is there + val competing = applicable.keys dropWhile (alt => best == alt || improves(best, alt)) + if (!competing.isEmpty) ambiguousImplicitError(best, competing.iterator.next, "both", "and", "") // !!! streamline when new collection is there // Also check that applicable infos that did not get selected are not // in (a companion object of) a subclass of (a companion object of) the class @@ -564,7 +564,7 @@ self: Analyzer => else t :: compactify(ts1 remove (pre <:< _.prefix)) } getParts(tp) - for ((k, ts) <- partMap.elements.toList; t <- compactify(ts)) yield t + for ((k, ts) <- partMap.iterator.toList; t <- compactify(ts)) yield t } /** The implicits made available by type `pt`. @@ -572,7 +572,7 @@ self: Analyzer => * such that some part of `tp` has C as one of its superclasses. */ private def implicitsOfExpectedType: List[List[ImplicitInfo]] = - parts(pt).elements.map(implicitsOfClass).toList + parts(pt).iterator.map(implicitsOfClass).toList /** The manifest corresponding to type `pt`, provided `pt` is an instance of Manifest. */ diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index 360ab6d09d..37f2c266cd 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -331,7 +331,7 @@ abstract class RefChecks extends InfoTransform { // // (3) is violated but not (2). def checkNoAbstractDecls(bc: Symbol) { - for (decl <- bc.info.decls.elements) { + for (decl <- bc.info.decls.iterator) { if (decl.isDeferred && !isAbstractTypeWithoutFBound(decl)) { val impl = decl.matchingSymbol(clazz.thisType) if (impl == NoSymbol || (decl.owner isSubClass impl.owner)) { diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 68ae453793..33316d8da0 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -2135,7 +2135,7 @@ trait Typers { self: Analyzer => val attrScope = annType.decls .filter(sym => sym.isMethod && !sym.isConstructor && sym.hasFlag(JAVA)) val names = new collection.mutable.HashSet[Symbol] - names ++= attrScope.elements.filter(_.isMethod) + names ++= attrScope.iterator.filter(_.isMethod) if (args.length == 1) { names.retain(sym => sym.name != nme.value) } diff --git a/src/compiler/scala/tools/nsc/util/HashSet.scala b/src/compiler/scala/tools/nsc/util/HashSet.scala index bc7c8cf69d..593b82da7f 100644 --- a/src/compiler/scala/tools/nsc/util/HashSet.scala +++ b/src/compiler/scala/tools/nsc/util/HashSet.scala @@ -41,7 +41,7 @@ class HashSet[T >: Null <: AnyRef](initialCapacity: Int) extends Set[T] { if (used >= (capacity >> 2)) growTable() } - def elements = new Iterator[T] { + def iterator = new Iterator[T] { private var i = 0 def hasNext: Boolean = { while (i < capacity && (table(i) eq null)) i += 1 diff --git a/src/compiler/scala/tools/nsc/util/Set.scala b/src/compiler/scala/tools/nsc/util/Set.scala index 8f39f07d05..42c865e1b2 100644 --- a/src/compiler/scala/tools/nsc/util/Set.scala +++ b/src/compiler/scala/tools/nsc/util/Set.scala @@ -14,11 +14,13 @@ abstract class Set[T <: AnyRef] { def addEntry(x: T): Unit - def elements: Iterator[T] + def iterator: Iterator[T] + + @deprecated def elements = iterator def contains(x: T): Boolean = findEntry(x) ne null - def toList = elements.toList + def toList = iterator.toList } diff --git a/src/compiler/scala/tools/nsc/util/TreeSet.scala b/src/compiler/scala/tools/nsc/util/TreeSet.scala index 40e889065c..5adaeb589a 100644 --- a/src/compiler/scala/tools/nsc/util/TreeSet.scala +++ b/src/compiler/scala/tools/nsc/util/TreeSet.scala @@ -40,7 +40,7 @@ class TreeSet[T >: Null <: AnyRef](less: (T, T) => Boolean) extends Set[T] { tree = add(tree) } - def elements = { + def iterator = { def elems(t: Tree): Iterator[T] = { var it = Iterator.single(t.elem) if (t.l ne null) it = elems(t.l) append it diff --git a/src/dbc/scala/dbc/Database.scala b/src/dbc/scala/dbc/Database.scala index 0dfcc850af..a92d94d97e 100644 --- a/src/dbc/scala/dbc/Database.scala +++ b/src/dbc/scala/dbc/Database.scala @@ -77,7 +77,7 @@ case class Database(dbms: Vendor) { connection.close() } else { lock.acquire - usedConnections = usedConnections.remove(e => (e.equals(connection))); + usedConnections = usedConnections.filterNot(e => (e.equals(connection))); if (availableConnections.length < vendor.retainedConnections) availableConnections = connection :: availableConnections else diff --git a/src/dbc/scala/dbc/result/Relation.scala b/src/dbc/scala/dbc/result/Relation.scala index 63881daff7..0d7ea28b76 100644 --- a/src/dbc/scala/dbc/result/Relation.scala +++ b/src/dbc/scala/dbc/result/Relation.scala @@ -56,7 +56,7 @@ abstract class Relation extends AnyRef with Iterable[Tuple] { * <h3>Caution</h3> A Relation only has one single iterator, due to limitations * in DBMS. This means that if this method is called multiple times, all returned * iterators will share the same state. */ - def elements: Iterator[Tuple] = new Iterator[Tuple] { + def iterator: Iterator[Tuple] = new Iterator[Tuple] { protected val result: java.sql.ResultSet = Relation.this.sqlResult def hasNext: Boolean = resultNext private var resultNext = result.next() @@ -78,4 +78,7 @@ abstract class Relation extends AnyRef with Iterable[Tuple] { else error("next on empty iterator") } } + + @deprecated def elements = iterator + } diff --git a/src/dotnet-library/scala/Console.scala b/src/dotnet-library/scala/Console.scala index 3df51dcd20..47b96d3180 100644 --- a/src/dotnet-library/scala/Console.scala +++ b/src/dotnet-library/scala/Console.scala @@ -279,7 +279,7 @@ object Console { // private def textParams(s: Seq[Any]): Array[AnyRef] = { // val res = new Array[AnyRef](s.length) // var i: Int = 0 -// val iter = s.elements +// val iter = s.iterator // while (iter.hasNext) { // res(i) = iter.next match { // case x: Boolean => java.lang.Boolean.valueOf(x) diff --git a/src/dotnet-library/scala/Ordering.scala b/src/dotnet-library/scala/Ordering.scala index 625f5977aa..e248fb7eeb 100644 --- a/src/dotnet-library/scala/Ordering.scala +++ b/src/dotnet-library/scala/Ordering.scala @@ -160,8 +160,8 @@ object Ordering implicit def Iterable[T](implicit ord : Ordering[T]) : Ordering[Iterable[T]] = new Ordering[Iterable[T]] { def compare(x : Iterable[T], y : Iterable[T]) : Int = { - val xe = x.elements; - val ye = y.elements; + val xe = x.iterator; + val ye = y.iterator; while (xe.hasNext && ye.hasNext){ val res = ord.compare(xe.next, ye.next); diff --git a/src/dotnet-library/scala/Predef.scala b/src/dotnet-library/scala/Predef.scala index eae88b94bc..bfcbc461b3 100644 --- a/src/dotnet-library/scala/Predef.scala +++ b/src/dotnet-library/scala/Predef.scala @@ -211,8 +211,8 @@ object Predef { val self = xs def compare(that: Iterable[A]): Int = { var res = 0 - val these = xs.elements - val those = that.elements + val these = xs.iterator + val those = that.iterator while (res == 0 && these.hasNext) res = if (those.hasNext) these.next compare those.next else 1 if (res == 0) { diff --git a/src/library/scala/Array.scala b/src/library/scala/Array.scala index 820195be3c..0ea2b9f972 100644 --- a/src/library/scala/Array.scala +++ b/src/library/scala/Array.scala @@ -92,70 +92,70 @@ object Array extends SequenceFactory[Array] { override def apply[A](xs: A*): Array[A] = { val array = new Array[A](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Boolean*): Array[Boolean] = { val array = new Array[Boolean](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Byte*): Array[Byte] = { val array = new Array[Byte](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Short*): Array[Short] = { val array = new Array[Short](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Char*): Array[Char] = { val array = new Array[Char](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Int*): Array[Int] = { val array = new Array[Int](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Long*): Array[Long] = { val array = new Array[Long](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Float*): Array[Float] = { val array = new Array[Float](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Double*): Array[Double] = { val array = new Array[Double](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } def apply(xs: Unit*): Array[Unit] = { val array = new Array[Unit](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } diff --git a/src/library/scala/Console.scala b/src/library/scala/Console.scala index f22c272e4e..31672ac8e6 100644 --- a/src/library/scala/Console.scala +++ b/src/library/scala/Console.scala @@ -406,7 +406,7 @@ object Console { private def textParams(s: Seq[Any]): Array[AnyRef] = { val res = new Array[AnyRef](s.length) var i: Int = 0 - val iter = s.elements + val iter = s.iterator while (iter.hasNext) { res(i) = iter.next match { case x: Boolean => java.lang.Boolean.valueOf(x) diff --git a/src/library/scala/Either.scala b/src/library/scala/Either.scala index 0f0105b482..9fbb4b71ba 100644 --- a/src/library/scala/Either.scala +++ b/src/library/scala/Either.scala @@ -189,7 +189,7 @@ object Either { * <code>Seq</code> if this is a <code>Right</code>. */ def toSeq = e match { - case Left(a) => Seq.singleton(a) + case Left(a) => Seq(a) case Right(_) => Seq.empty } @@ -291,7 +291,7 @@ object Either { */ def toSeq = e match { case Left(_) => Seq.empty - case Right(b) => Seq.singleton(b) + case Right(b) => Seq(b) } /** diff --git a/src/library/scala/Enumeration.scala b/src/library/scala/Enumeration.scala index d91e59f867..e5800a209e 100644 --- a/src/library/scala/Enumeration.scala +++ b/src/library/scala/Enumeration.scala @@ -44,7 +44,7 @@ import scala.collection.generic.{Builder, BuilderFactory, AddingBuilder, SetTemp * * <b>def</b> isWorkingDay(d: WeekDay) = ! (d == Sat || d == Sun) * - * WeekDay.elements filter isWorkingDay foreach println + * WeekDay.iterator filter isWorkingDay foreach println * }</pre> * * @param initial The initial value from which to count the integers that @@ -95,7 +95,7 @@ abstract class Enumeration(initial: Int, names: String*) { protected var nextId = initial /** The string to use to name the next created value. */ - protected var nextName = names.elements + protected var nextName = names.iterator /** The highest integer amongst those used to identify values in this * enumeration. */ @@ -219,7 +219,7 @@ abstract class Enumeration(initial: Int, names: String*) { def contains(v: Value) = ids contains (v.id) def + (value: Value) = new ValueSet(ids + value.id) def - (value: Value) = new ValueSet(ids - value.id) - def elements = ids.elements map Enumeration.this.apply + def iterator = ids.iterator map Enumeration.this.apply override def stringPrefix = Enumeration.this + ".ValueSet" } @@ -249,42 +249,42 @@ abstract class Enumeration(initial: Int, names: String*) { @deprecated def valueOf(s: String) = values.find(_.toString == s) /** A new iterator over all values of this enumeration. - * @deprecated use values.elements instead + * @deprecated use values.iterator instead */ - @deprecated final def elements: Iterator[Value] = values.elements + @deprecated final def iterator: Iterator[Value] = values.iterator /** Apply a function f to all values of this enumeration. * @deprecated use values.foreach instead */ - @deprecated def foreach(f: Value => Unit): Unit = elements foreach f + @deprecated def foreach(f: Value => Unit): Unit = this.iterator foreach f /** Apply a predicate p to all values of this enumeration and return * true, iff the predicate yields true for all values. * @deprecated use values.forall instead */ - @deprecated def forall(p: Value => Boolean): Boolean = elements forall p + @deprecated def forall(p: Value => Boolean): Boolean = this.iterator forall p /** Apply a predicate p to all values of this enumeration and return * true, iff there is at least one value for which p yields true. * @deprecated use values.exists instead */ - @deprecated def exists(p: Value => Boolean): Boolean = elements exists p + @deprecated def exists(p: Value => Boolean): Boolean = this.iterator exists p /** Returns an iterator resulting from applying the given function f to each * value of this enumeration. * @deprecated use values.map instead */ - @deprecated def map[B](f: Value => B): Iterator[B] = elements map f + @deprecated def map[B](f: Value => B): Iterator[B] = this.iterator map f /** Applies the given function f to each value of this enumeration, then * concatenates the results. * @deprecated use values.flatMap instead */ - @deprecated def flatMap[B](f: Value => Iterator[B]): Iterator[B] = elements flatMap f + @deprecated def flatMap[B](f: Value => Iterator[B]): Iterator[B] = this.iterator flatMap f /** Returns all values of this enumeration that satisfy the predicate p. * The order of values is preserved. * @deprecated use values.filter instead */ - @deprecated def filter(p: Value => Boolean): Iterator[Value] = elements filter p + @deprecated def filter(p: Value => Boolean): Iterator[Value] = this.iterator filter p } diff --git a/src/library/scala/Option.scala b/src/library/scala/Option.scala index a1fe76c074..f6cbd94748 100644 --- a/src/library/scala/Option.scala +++ b/src/library/scala/Option.scala @@ -104,8 +104,8 @@ sealed abstract class Option[+A] extends Product { /** An singleton iterator returning the option's value if it is nonempty * or the empty iterator if the option is empty. */ - def elements: Iterator[A] = - if (isEmpty) Iterator.empty else Iterator.fromValues(this.get) + def iterator: Iterator[A] = + if (isEmpty) Iterator.empty else Iterator.single(this.get) /** 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/Ordering.scala b/src/library/scala/Ordering.scala index 663af258dd..467a46f724 100644 --- a/src/library/scala/Ordering.scala +++ b/src/library/scala/Ordering.scala @@ -160,8 +160,8 @@ object Ordering implicit def Iterable[T](implicit ord : Ordering[T]) : Ordering[Iterable[T]] = new Ordering[Iterable[T]] { def compare(x : Iterable[T], y : Iterable[T]) : Int = { - val xe = x.elements; - val ye = y.elements; + val xe = x.iterator; + val ye = y.iterator; while (xe.hasNext && ye.hasNext){ val res = ord.compare(xe.next, ye.next); diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala index c1a7024117..2c11c9a106 100644 --- a/src/library/scala/Predef.scala +++ b/src/library/scala/Predef.scala @@ -161,7 +161,7 @@ object Predef { def println() = Console.println() def println(x: Any) = Console.println(x) def printf(text: String, xs: Any*) = Console.printf(text, xs: _*) - def format(text: String, xs: Any*) = Console.format(text, xs: _*) + def format(text: String, xs: Any*) = stringWrapper(text).format(xs: _*) def readLine(): String = Console.readLine() def readLine(text: String, args: Any*) = Console.readLine(text, args) @@ -209,8 +209,8 @@ object Predef { val self = xs def compare(that: Iterable[A]): Int = { var res = 0 - val these = xs.elements - val those = that.elements + val these = xs.iterator + val those = that.iterator while (res == 0 && these.hasNext) res = if (those.hasNext) these.next compare those.next else 1 if (res == 0) { diff --git a/src/library/scala/Product.scala b/src/library/scala/Product.scala index fd310f8fcf..b9a60e4c95 100644 --- a/src/library/scala/Product.scala +++ b/src/library/scala/Product.scala @@ -32,13 +32,17 @@ trait Product extends AnyRef { */ def productArity: Int - def productElements: Iterator[Any] = new Iterator[Any] { + def productIterator: Iterator[Any] = new Iterator[Any] { private var c: Int = 0 private val cmax = productArity def hasNext = c < cmax def next() = { val result = productElement(c); c += 1; result } } + /** @deprecated use productIterator instead + */ + @deprecated def productElements: Iterator[Any] = productIterator + /** * By default the empty string. Implementations may override this * method in order to prepend a string prefix to the result of the diff --git a/src/library/scala/Tuple2.scala b/src/library/scala/Tuple2.scala index 4d8d64702d..89cf68b3b0 100644 --- a/src/library/scala/Tuple2.scala +++ b/src/library/scala/Tuple2.scala @@ -21,8 +21,8 @@ object Tuple2 { /* !!! todo: enable class IterableOps[CC[+B] <: Iterable[B] with IterableTemplate[CC, B @uncheckedVariance], A1, A2](tuple: (CC[A1], Iterable[A2])) { def zip: CC[(A1, A2)] = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator val b = (tuple._1: IterableTemplate[CC, A1]).newBuilder[(A1, A2)] // : needed because otherwise it picks Iterable's builder. while (elems1.hasNext && elems2.hasNext) @@ -30,37 +30,37 @@ object Tuple2 { b.result } def map[B](f: (A1, A2) => B): CC[B] = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator val b = (tuple._1: IterableTemplate[CC, A1]).newBuilder[B] while (elems1.hasNext && elems2.hasNext) b += f(elems1.next, elems2.next) b.result } def flatMap[B](f: (A1, A2) => CC[B]): CC[B] = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator val b = (tuple._1: IterableTemplate[CC, A1]).newBuilder[B] while (elems1.hasNext && elems2.hasNext) b ++= f(elems1.next, elems2.next) b.result } def foreach[U](f: (A1, A2) => U) { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator while (elems1.hasNext && elems2.hasNext) f(elems1.next, elems2.next) } def forall(p: (A1, A2) => Boolean): Boolean = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator while (elems1.hasNext && elems2.hasNext) if (!p(elems1.next, elems2.next)) return false true } def exists(p: (A1, A2) => Boolean): Boolean = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator while (elems1.hasNext && elems2.hasNext) if (p(elems1.next, elems2.next)) return true false diff --git a/src/library/scala/Tuple2.scala.notyet b/src/library/scala/Tuple2.scala.notyet index bed6bd3a9a..050a8d2536 100644 --- a/src/library/scala/Tuple2.scala.notyet +++ b/src/library/scala/Tuple2.scala.notyet @@ -16,45 +16,45 @@ package scala object Tuple2 { class IterableOps[CC[+B] <: Iterable[B], A1, A2](tuple: (CC[A1], Iterable[A2])) { def zip: CC[(A1, A2)] = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator val b = tuple._1.newBuilder[B] while (elems1.hasNext && elems2.hasNext) b += ((elems1.next, elems2.next)) b.result } def map[B](f: (A1, A2) => B): CC[B] = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator val b = tuple._1.newBuilder[B] while (elems1.hasNext && elems2.hasNext) b += f(elems1.next, elems2.next) b.result } def flatMap[B](f: (A1, A2) => CC[B]) CC[B] = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator val b = tuple._1.newBuilder[B] while (elems1.hasNext && elems2.hasNext) b ++= f(elems1.next, elems2.next) b.result } def foreach(f: (A1, A2) => Unit) { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator while (elems1.hasNext && elems2.hasNext) f(elems1.next, elems2.next) } def forall(p: (A1, A2) => Boolean): Boolean = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator while (elems1.hasNext && elems2.hasNext) if (!p(elems1.next, elems2.next)) return false true } def exists(p: (A1, A2) => Boolean): Boolean = { - val elems1 = tuple._1.elements - val elems2 = tuple._2.elements + val elems1 = tuple._1.iterator + val elems2 = tuple._2.iterator while (elems1.hasNext && elems2.hasNext) if (p(elems1.next, elems2.next)) return true false diff --git a/src/library/scala/collection/DefaultMap.scala b/src/library/scala/collection/DefaultMap.scala index fe5b7a2c1b..bb3a0defa0 100644 --- a/src/library/scala/collection/DefaultMap.scala +++ b/src/library/scala/collection/DefaultMap.scala @@ -17,7 +17,7 @@ import generic._ * Instances that inherit from DefaultMap[A, B] still have to define: * * def get(key: A): Option[B] - * def elements: Iterator[(A, B)] + * def iterator: Iterator[(A, B)] * * It refers back to the original map. * diff --git a/src/library/scala/collection/Iterable.scala b/src/library/scala/collection/Iterable.scala index 1ec5dccd7c..179ff99d92 100644 --- a/src/library/scala/collection/Iterable.scala +++ b/src/library/scala/collection/Iterable.scala @@ -38,7 +38,7 @@ trait Iterable[+A] extends Traversable[A] /* The following methods are inherited from trait IterableTemplate * - override def elements: Iterator[A] + override def iterator: Iterator[A] override def takeRight(n: Int): Iterable[A] override def dropRight(n: Int): Iterable[A] override def sameElements[B >: A](that: Iterable[B]): Boolean @@ -58,7 +58,7 @@ object Iterable extends TraversableFactory[Iterable] { * @deprecated use seq.min instead */ @deprecated def min[A <% Ordered[A]](seq: Iterable[A]): A = { - val xs = seq.elements + val xs = seq.iterator if (!xs.hasNext) throw new IllegalArgumentException("min(<empty>)") var min = xs.next while (xs.hasNext) { @@ -72,7 +72,7 @@ object Iterable extends TraversableFactory[Iterable] { * @deprecated use seq.max iConstead */ @deprecated def max[A <% Ordered[A]](seq: Iterable[A]): A = { - val xs = seq.elements + val xs = seq.iterator if (!xs.hasNext) throw new IllegalArgumentException("max(<empty>)") var max = xs.next while (xs.hasNext) { diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala index a38cc6f360..5ebe0df11e 100644 --- a/src/library/scala/collection/Iterator.scala +++ b/src/library/scala/collection/Iterator.scala @@ -43,14 +43,14 @@ object Iterator { /** Creates an iterator with given elements * @param elems The elements returned one-by-one from the iterator */ - def apply[A](elems: A*): Iterator[A] = elems.elements + def apply[A](elems: A*): Iterator[A] = elems.iterator /** Concatenates the given argument iterators into a single iterator. * * @param its the argument iterators that are to be concatenated * @return the concatenation of all the argument iterators */ - @deprecated def concat[A](xss: Iterator[A]*): Iterator[A] = xss.elements.flatten + @deprecated def concat[A](xss: Iterator[A]*): Iterator[A] = xss.iterator.flatten /** An iterator that returns the results of some element computation a number of times. * @param len The number of elements returned @@ -165,14 +165,14 @@ object Iterator { implicit def iteratorIteratorWrapper[A](its: Iterator[Iterator[A]]): IteratorIteratorOps[A] = new IteratorIteratorOps[A](its) - /** @deprecated use `xs.elements` instead + /** @deprecated use `xs.iterator` or `Iterator(xs)` instead */ - @deprecated def fromValues[a](xs: a*) = xs.elements + @deprecated def fromValues[a](xs: a*) = xs.iterator /** * @param xs the array of elements - * @see also: Vector.elements and slice - * @deprecated use `xs.elements` instead + * @see also: Vector.iterator and slice + * @deprecated use `xs.iterator` instead */ @deprecated def fromArray[a](xs: Array[a]): Iterator[a] = fromArray(xs, 0, xs.length) @@ -181,23 +181,23 @@ object Iterator { * @param xs the array of elements * @param start the start index * @param length the length - * @see also: Vector.elements and slice - * @deprecated use `xs.slice(start, start + length).elements` instead + * @see also: Vector.iterator and slice + * @deprecated use `xs.slice(start, start + length).iterator` instead */ @deprecated def fromArray[a](xs: Array[a], start: Int, length: Int): Iterator[a] = - xs.slice(start, start + length).elements + xs.slice(start, start + length).iterator /** * @param str the given string * @return the iterator on <code>str</code> - * @deprecated replaced by <code>str.elements</code> + * @deprecated replaced by <code>str.iterator</code> */ - @deprecated def fromString(str: String): Iterator[Char] = str.elements + @deprecated def fromString(str: String): Iterator[Char] = str.iterator /** * @param n the product arity * @return the iterator on <code>Product<n></code>. - * @deprecated use product.productElements instead + * @deprecated use product.productIterator instead */ @deprecated def fromProduct(n: Product): Iterator[Any] = new Iterator[Any] { private var c: Int = 0 diff --git a/src/library/scala/collection/JavaConversions.scala b/src/library/scala/collection/JavaConversions.scala index 3509d13373..968329614c 100644 --- a/src/library/scala/collection/JavaConversions.scala +++ b/src/library/scala/collection/JavaConversions.scala @@ -323,18 +323,21 @@ object JavaConversions { } case class IterableWrapper[A](underlying : Iterable[A]) extends ju.AbstractCollection[A] { - def iterator = underlying.elements + def iterator = underlying.iterator + @deprecated def elements = iterator def size = underlying.size override def isEmpty = underlying.isEmpty } case class JIterableWrapper[A](underlying : jl.Iterable[A]) extends Iterable[A] { - def elements = underlying.iterator + def iterator = underlying.iterator + @deprecated def elements = iterator def newBuilder[B] = new mutable.ArrayBuffer[B] } case class JCollectionWrapper[A](underlying : ju.Collection[A]) extends Iterable[A] { - def elements = underlying.iterator + def iterator = underlying.iterator + @deprecated def elements = iterator override def size = underlying.size override def isEmpty = underlying.isEmpty def newBuilder[B] = new mutable.ArrayBuffer[B] @@ -351,7 +354,8 @@ object JavaConversions { case class JListWrapper[A](val underlying : ju.List[A]) extends mutable.Buffer[A] { def length = underlying.size override def isEmpty = underlying.isEmpty - override def elements : Iterator[A] = underlying.iterator + override def iterator : Iterator[A] = underlying.iterator + @deprecated def elements = iterator def apply(i : Int) = underlying.get(i) def update(i : Int, elem : A) = underlying.set(i, elem) def +:(elem : A) = { underlying.subList(0, 0).add(elem) ; this } @@ -374,7 +378,7 @@ object JavaConversions { } } def iterator = new ju.Iterator[A] { - val ui = underlying.elements + val ui = underlying.iterator var prev : Option[A] = None def hasNext = ui.hasNext @@ -384,12 +388,15 @@ object JavaConversions { case _ => throw new IllegalStateException("next must be called at least once before remove") } } + + @deprecated def elements = iterator } case class JSetWrapper[A](underlying : ju.Set[A]) extends mutable.Set[A] with generic.MutableSetTemplate[A, JSetWrapper[A]] { override def size = underlying.size - def elements = underlying.iterator + def iterator = underlying.iterator + @deprecated def elements = iterator def contains(elem: A): Boolean = underlying.contains(elem) @@ -429,7 +436,7 @@ object JavaConversions { def size = self.size def iterator = new ju.Iterator[ju.Map.Entry[A, B]] { - val ui = underlying.elements + val ui = underlying.iterator var prev : Option[A] = None def hasNext = ui.hasNext @@ -448,6 +455,8 @@ object JavaConversions { } } + @deprecated def elements = iterator + def remove = prev match { case Some(k) => val v = self.remove(k.asInstanceOf[AnyRef]) ; prev = None ; v case _ => throw new IllegalStateException("next must be called at least once before remove") @@ -484,7 +493,7 @@ object JavaConversions { if (r != null) Some(r) else None } - def elements = new Iterator[(A, B)] { + def iterator = new Iterator[(A, B)] { val ui = underlying.entrySet.iterator def hasNext = ui.hasNext def next = { val e = ui.next ; (e.getKey, e.getValue) } diff --git a/src/library/scala/collection/Map.scala b/src/library/scala/collection/Map.scala index 0cc1f33404..72afa218c2 100644 --- a/src/library/scala/collection/Map.scala +++ b/src/library/scala/collection/Map.scala @@ -18,7 +18,7 @@ import generic._ * (where This is the type of the map in question): * * def get(key: A): Option[B] - * def elements: Iterator[(A, B)] + * def iterator: Iterator[(A, B)] * def + [B1 >: B](kv: (A, B1)): This * def -(key: A): This * diff --git a/src/library/scala/collection/RollbackIterator.scala.disabled b/src/library/scala/collection/RollbackIterator.scala.disabled index 09ef4b6c3e..2dc011deee 100644 --- a/src/library/scala/collection/RollbackIterator.scala.disabled +++ b/src/library/scala/collection/RollbackIterator.scala.disabled @@ -46,7 +46,7 @@ class RollbackIterator[+A](underlying: Iterator[A]) extends BufferedIterator.Def if (g.isEmpty) { //putBack(rollback(0)) val sz = oldLength.getOrElse(0) - val i = rollback.drop(sz).reverse.elements + val i = rollback.drop(sz).reverse.iterator while (i.hasNext) putBack(i.next) if (oldLength.isEmpty) rollback = null else rollback.reduceToSize(sz) diff --git a/src/library/scala/collection/Sequence.scala b/src/library/scala/collection/Sequence.scala index c5853355d4..d85ae1c306 100644 --- a/src/library/scala/collection/Sequence.scala +++ b/src/library/scala/collection/Sequence.scala @@ -20,7 +20,7 @@ import util.control.Breaks._ * of type <code>A</code>. * It adds the following methods to class Iterable: * `length`, `lengthCompare`, `apply`, `isDefinedAt`, `segmentLength`, `prefixLengh`, - * `indexWhere`, `indexOf`, `lastIndexWhere`, `lastIndexOf`, `reverse`, `reversedElements`, + * `indexWhere`, `indexOf`, `lastIndexWhere`, `lastIndexOf`, `reverse`, `reverseIterator`, * `startsWith`, `endsWith`, `indexOfSeq`. * * diff --git a/src/library/scala/collection/generic/BitSetTemplate.scala b/src/library/scala/collection/generic/BitSetTemplate.scala index f5c5a64d4e..e7fa26534c 100644 --- a/src/library/scala/collection/generic/BitSetTemplate.scala +++ b/src/library/scala/collection/generic/BitSetTemplate.scala @@ -33,7 +33,7 @@ trait BitSetTemplate[+This <: BitSetTemplate[This] with Set[Int]] extends SetTem s } - def elements = new Iterator[Int] { + def iterator = new Iterator[Int] { private var current = 0 private val end = nwords * WordLength def hasNext: Boolean = { @@ -45,6 +45,8 @@ trait BitSetTemplate[+This <: BitSetTemplate[This] with Set[Int]] extends SetTem else Iterator.empty.next } + @deprecated def elements = iterator + override def foreach[B](f: Int => B) { for (i <- 0 until nwords) { val w = word(i) @@ -136,7 +138,7 @@ object BitSetTemplate { private val pc1: Array[Int] = { def countBits(x: Int): Int = if (x == 0) 0 else x % 2 + countBits(x >>> 1) - Array.fromFunction(countBits _)(256) + Array.tabulate(256)(countBits _) } private def popCount(w: Long): Int = { diff --git a/src/library/scala/collection/generic/BufferTemplate.scala b/src/library/scala/collection/generic/BufferTemplate.scala index 74f61870d3..53d74a2d45 100644 --- a/src/library/scala/collection/generic/BufferTemplate.scala +++ b/src/library/scala/collection/generic/BufferTemplate.scala @@ -116,7 +116,7 @@ trait BufferTemplate[A, +This <: BufferTemplate[A, This] with Buffer[A]] } /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned.(thisCollection /: elems) (_ plus _) * * @param iter the iterable object. @@ -138,7 +138,7 @@ trait BufferTemplate[A, +This <: BufferTemplate[A, This] with Buffer[A]] def append(elems: A*) { this ++= elems } /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. + * via its <code>iterator</code> method. * * @param iter the iterable object. */ @@ -151,7 +151,7 @@ trait BufferTemplate[A, +This <: BufferTemplate[A, This] with Buffer[A]] def prepend(elems: A*) { elems ++: this } /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. @@ -159,7 +159,7 @@ trait BufferTemplate[A, +This <: BufferTemplate[A, This] with Buffer[A]] def prependAll(iter: Traversable[A]) { iter ++: this } /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. @@ -209,7 +209,7 @@ trait BufferTemplate[A, +This <: BufferTemplate[A, This] with Buffer[A]] case Remove(NoLo, x) => this -= x case Reset() => clear - case s: Script[_] => s.elements foreach << + case s: Script[_] => s.iterator foreach << case _ => throw new UnsupportedOperationException("message " + cmd + " not understood") } diff --git a/src/library/scala/collection/generic/ImmutableMapTemplate.scala b/src/library/scala/collection/generic/ImmutableMapTemplate.scala index b001e72a08..6c5331689e 100644 --- a/src/library/scala/collection/generic/ImmutableMapTemplate.scala +++ b/src/library/scala/collection/generic/ImmutableMapTemplate.scala @@ -16,7 +16,7 @@ package scala.collection.generic * (where This is the type of the map in question): * * def get(key: A): Option[B] - * def elements: Iterator[(A, B)] + * def iterator: Iterator[(A, B)] * def + [B1 >: B](kv: (A, B)): Map[A, B1] * def - (key: A): This * diff --git a/src/library/scala/collection/generic/IterableForwarder.scala b/src/library/scala/collection/generic/IterableForwarder.scala index 142edbf509..5593f1a4f5 100644 --- a/src/library/scala/collection/generic/IterableForwarder.scala +++ b/src/library/scala/collection/generic/IterableForwarder.scala @@ -33,6 +33,6 @@ trait IterableForwarder[+A] extends Iterable[A] with TraversableForwarder[A] { // Iterable delegates // Iterable methods could be printed by cat IterableTemplate.scala | sed -n '/trait Iterable/,$ p' | egrep '^ (override )?def' - override def elements = underlying.elements + override def iterator = underlying.iterator override def sameElements[B >: A](that: Iterable[B]): Boolean = underlying.sameElements(that) } diff --git a/src/library/scala/collection/generic/IterableProxyTemplate.scala b/src/library/scala/collection/generic/IterableProxyTemplate.scala index 646cdbee11..d154d33621 100644 --- a/src/library/scala/collection/generic/IterableProxyTemplate.scala +++ b/src/library/scala/collection/generic/IterableProxyTemplate.scala @@ -23,7 +23,7 @@ import collection.mutable.Buffer * @version 2.8 */ trait IterableProxyTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] extends IterableTemplate[A, This] with TraversableProxyTemplate[A, This] { - override def elements: Iterator[A] = self.elements + override def iterator: Iterator[A] = self.iterator override def takeRight(n: Int): This = self.takeRight(n) override def dropRight(n: Int): This = self.dropRight(n) override def sameElements[B >: A](that: Iterable[B]): Boolean = self.sameElements(that) diff --git a/src/library/scala/collection/generic/IterableTemplate.scala b/src/library/scala/collection/generic/IterableTemplate.scala index c540f5d3c9..7a0fb122f1 100644 --- a/src/library/scala/collection/generic/IterableTemplate.scala +++ b/src/library/scala/collection/generic/IterableTemplate.scala @@ -16,7 +16,7 @@ import util.control.Breaks._ /** A template trait for iterable collections. * * Collection classes mixing in this trait provide a method - * <code>elements</code> which returns an iterator over all the + * <code>iterator</code> which returns an iterator over all the * elements contained in the collection. They also provide a method `newBuilder` * which creates a builder for collections of the same kind. * @@ -24,7 +24,7 @@ import util.control.Breaks._ * all elements. Subclasses of `Iterable` should re-implement `foreach` with * something more efficient, if possible. * - * This trait adds methods `elements`, `sameElements`, + * This trait adds methods `iterator`, `sameElements`, * `takeRight`, `dropRight` to the methods inherited from trait `Traversable`. * * @author Martin Odersky @@ -37,7 +37,7 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] * * @return the new iterator */ - def elements: Iterator[A] + def iterator: Iterator[A] /** Apply a function <code>f</code> to all elements of this * traversable object. @@ -46,15 +46,15 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] * The result (of arbitrary type U) of function `f` is discarded. * * @note This method underlies the implementation of most other bulk operations. - * Implementing `foreach` with `elements` is often suboptimal. + * Implementing `foreach` with `iterator` is often suboptimal. * So `foreach` should be overridden in concrete collection classes if a more * efficient implementation is available. */ - def foreach[U](f: A => U): Unit = elements.foreach(f) + def foreach[U](f: A => U): Unit = this.iterator.foreach(f) /** Does this iterable contain no elements? */ - override def isEmpty: Boolean = !elements.hasNext + override def isEmpty: Boolean = !this.iterator.hasNext /** Combines the elements of this iterable together using the binary * function <code>f</code>, from right to left, and starting with @@ -67,7 +67,7 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] * if the iterable is <code>[a<sub>0</sub>, a1, ..., a<sub>n</sub>]</code>. */ override def foldRight[B](z: B)(op: (A, B) => B): B = - elements.foldRight(z)(op) + this.iterator.foldRight(z)(op) /** Combines the elements of this iterable object together using the binary * operator <code>op</code>, from right to left @@ -83,7 +83,7 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] * @throws Predef.UnsupportedOperationException if the iterator is empty. */ override def reduceRight[B >: A](op: (A, B) => B): B = - elements.reduceRight(op) + this.iterator.reduceRight(op) /** The iterable itself */ override def toIterable: Iterable[A] = thisCollection @@ -93,7 +93,11 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] * @note Might return different results for different runs, unless this iterable is ordered * @throws Predef.NoSuchElementException if the iterable is empty. */ - override def head: A = if (isEmpty) throw new NoSuchElementException else elements.next + override def head: A = + if (isEmpty) + throw new NoSuchElementException + else + this.iterator.next /** Returns the rightmost <code>n</code> elements from this iterable. * @@ -102,7 +106,7 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] */ def takeRight(n: Int): This = { val b = newBuilder - val lead = elements drop n + val lead = this.iterator drop n var go = false for (x <- this) { if (lead.hasNext) lead.next @@ -119,7 +123,7 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] */ def dropRight(n: Int): This = { val b = newBuilder - val lead = elements drop n + val lead = iterator drop n breakable { for (x <- this) { if (!lead.hasNext) break @@ -138,8 +142,8 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] * @note Might return different results for different runs, unless this iterable is ordered */ def sameElements[B >: A](that: Iterable[B]): Boolean = { - val these = this.elements - val those = that.elements + val these = this.iterator + val those = that.iterator var res = true while (res && these.hasNext && those.hasNext) { res = (these.next == those.next) @@ -149,13 +153,13 @@ trait IterableTemplate[+A, +This <: IterableTemplate[A, This] with Iterable[A]] /** Returns a stream with all elements in this traversable object. */ - override def toStream: Stream[A] = elements.toStream + override def toStream: Stream[A] = iterator.toStream /** Creates a view of this iterable @see IterableView */ override def view = new IterableView[A, This] { protected lazy val underlying = self.thisCollection - override def elements = self.elements + override def iterator = self.iterator } /** A sub-iterable view starting at index `from` diff --git a/src/library/scala/collection/generic/IterableViewTemplate.scala b/src/library/scala/collection/generic/IterableViewTemplate.scala index f120e97ac4..950f8bb52a 100644 --- a/src/library/scala/collection/generic/IterableViewTemplate.scala +++ b/src/library/scala/collection/generic/IterableViewTemplate.scala @@ -23,31 +23,31 @@ extends Iterable[A] with IterableTemplate[A, This] with TraversableView[A, Coll] trait Transformed[+B] extends IterableView[B, Coll] with super.Transformed[B] trait Sliced extends Transformed[A] with super.Sliced { - override def elements = self.elements slice (from, until) + override def iterator = self.iterator slice (from, until) } trait Mapped[B] extends Transformed[B] with super.Mapped[B] { - override def elements = self.elements map mapping + override def iterator = self.iterator map mapping } trait FlatMapped[B] extends Transformed[B] with super.FlatMapped[B] { - override def elements = self.elements flatMap (mapping(_).toIterable.elements) + override def iterator = self.iterator flatMap (mapping(_).toIterable.iterator) } trait Appended[B >: A] extends Transformed[B] with super.Appended[B] { - override def elements = self.elements ++ rest.toIterable.elements + override def iterator = self.iterator ++ rest.toIterable.iterator } trait Filtered extends Transformed[A] with super.Filtered { - override def elements = self.elements filter pred + override def iterator = self.iterator filter pred } trait TakenWhile extends Transformed[A] with super.TakenWhile { - override def elements = self.elements takeWhile pred + override def iterator = self.iterator takeWhile pred } trait DroppedWhile extends Transformed[A] with super.DroppedWhile { - override def elements = self.elements dropWhile pred + override def iterator = self.iterator dropWhile pred } /** Boilerplate method, to override in each subclass diff --git a/src/library/scala/collection/generic/LinearSequenceTemplate.scala b/src/library/scala/collection/generic/LinearSequenceTemplate.scala index 6c13e71beb..b87a417fd7 100644 --- a/src/library/scala/collection/generic/LinearSequenceTemplate.scala +++ b/src/library/scala/collection/generic/LinearSequenceTemplate.scala @@ -60,7 +60,7 @@ trait LinearSequenceTemplate[+A, +This <: LinearSequenceTemplate[A, This] with L /** Returns the elements in the sequence as an iterator */ - override def elements: Iterator[A] = new Iterator[A] { + override def iterator: Iterator[A] = new Iterator[A] { var these = self def hasNext: Boolean = !these.isEmpty def next: A = @@ -70,6 +70,8 @@ trait LinearSequenceTemplate[+A, +This <: LinearSequenceTemplate[A, This] with L override def toList: List[A] = these.toList } + @deprecated def elements = iterator + /** Apply the given function <code>f</code> to each element of this linear sequence * (while respecting the order of the elements). * diff --git a/src/library/scala/collection/generic/LinkedListTemplate.scala b/src/library/scala/collection/generic/LinkedListTemplate.scala index 0be2562996..e3de5031a9 100644 --- a/src/library/scala/collection/generic/LinkedListTemplate.scala +++ b/src/library/scala/collection/generic/LinkedListTemplate.scala @@ -69,7 +69,7 @@ trait LinkedListTemplate[A, This >: Null <: Sequence[A] with LinkedListTemplate[ else None } - override def elements: Iterator[A] = new Iterator[A] { + override def iterator: Iterator[A] = new Iterator[A] { var elems = self def hasNext = (elems ne null) def next = { diff --git a/src/library/scala/collection/generic/MapTemplate.scala b/src/library/scala/collection/generic/MapTemplate.scala index 0af8543370..ff67a1a379 100644 --- a/src/library/scala/collection/generic/MapTemplate.scala +++ b/src/library/scala/collection/generic/MapTemplate.scala @@ -16,7 +16,7 @@ package scala.collection.generic * (where `This` is the type of the map in question): * * def get(key: A): Option[B] - * def elements: Iterator[(A, B)] + * def iterator: Iterator[(A, B)] * def + [B1 >: B](kv: (A, B1)): This * def -(key: A): This * @@ -50,7 +50,9 @@ self => def get(key: A): Option[B] /** An iterator yielding all key/value mappings of this map. */ - def elements: Iterator[(A, B)] + def iterator: Iterator[(A, B)] + + @deprecated def elements = iterator /** Add a key/value pair to this map, returning a new map. * @param kv the key/value pair @@ -110,44 +112,52 @@ self => */ def isDefinedAt(key: A) = contains(key) - /** Creates an iterator for all keys. - * - * @return an iterator over all keys. + /** + * @return the keys of this map as a set. */ - def keys: Iterator[A] = new Iterator[A] { - val iter = self.elements - def hasNext = iter.hasNext - def next = iter.next._1 - } + def keys: Set[A] = new DefaultKeySet protected class DefaultKeySet extends Set[A] { def contains(key : A) = self.contains(key) - def elements = self.elements.map(_._1) + def iterator = self.iterator.map(_._1) + @deprecated def elements = iterator def + (elem: A): Set[A] = (Set[A]() ++ this + elem).asInstanceOf[Set[A]] // !!! concrete overrides abstract problem def - (elem: A): Set[A] = (Set[A]() ++ this - elem).asInstanceOf[Set[A]] // !!! concrete overrides abstract problem override def size = self.size override def foreach[B](f: A => B) = for ((k, v) <- self) f(k) } - /** @return the keys of this map as a set. + /** @deprecated use `keys` instead + * + * @return the keys of this map as a set. */ - def keySet: Set[A] = new DefaultKeySet + @deprecated def keySet: collection.Set[A] = new DefaultKeySet - /** Creates an iterator for a contained values. + /** Creates an iterator for all keys. * - * @return an iterator over all values. + * @return an iterator over all keys. */ - def values: Iterator[B] = new Iterator[B] { - val iter = self.elements + def keysIterator: Iterator[A] = new Iterator[A] { + val iter = self.iterator def hasNext = iter.hasNext - def next = iter.next._2 + def next = iter.next._1 } /** @return the values of this map as a set. * @note Can't return a Set[B] here because sets are non-variant. * The operation is overridden with the sharper type in MutableMapTemplate. */ - def valueSet: immutable.Set[_ <: B] = immutable.Set.empty[B] ++ (self map (_._2)) + def values: collection.Set[_ <: B] = immutable.Set.empty[B] ++ (self map (_._2)) + + /** Creates an iterator for a contained values. + * + * @return an iterator over all values. + */ + def valuesIterator: Iterator[B] = new Iterator[B] { + val iter = self.iterator + def hasNext = iter.hasNext + def next = iter.next._2 + } /** The default value for the map, returned when a key is not found * The method implemented here yields an error, @@ -164,7 +174,7 @@ self => */ def filterKeys(p: A => Boolean) = new DefaultMap[A, B] { override def foreach[C](f: ((A, B)) => C): Unit = for (kv <- self) if (p(kv._1)) f(kv) - def elements = self.elements.filter(kv => p(kv._1)) + def iterator = self.iterator.filter(kv => p(kv._1)) override def contains(key: A) = self.contains(key) && p(key) def get(key: A) = if (!p(key)) None else self.get(key) } @@ -174,7 +184,7 @@ self => */ def mapValues[C](f: B => C) = new DefaultMap[A, C] { override def foreach[D](g: ((A, C)) => D): Unit = for ((k, v) <- self) g((k, f(v))) - def elements = for ((k, v) <- self.elements) yield (k, f(v)) + def iterator = for ((k, v) <- self.iterator) yield (k, f(v)) override def size = self.size override def contains(key: A) = self.contains(key) def get(key: A) = self.get(key).map(f) @@ -226,7 +236,7 @@ self => * @return a string showing all mappings */ override def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder = - elements.map { case (k, v) => k+" -> "+v }.addString(b, start, sep, end) + this.iterator.map { case (k, v) => k+" -> "+v }.addString(b, start, sep, end) /** Compares two maps structurally; i.e. checks if all mappings * contained in this map are also contained in the other map, diff --git a/src/library/scala/collection/generic/MutableMapTemplate.scala b/src/library/scala/collection/generic/MutableMapTemplate.scala index 9ccb13787b..6d6d05a119 100644 --- a/src/library/scala/collection/generic/MutableMapTemplate.scala +++ b/src/library/scala/collection/generic/MutableMapTemplate.scala @@ -15,7 +15,7 @@ package scala.collection.generic * To implement a concrete mutable map, you need to provide implementations of the following methods: * * def get(key: A): Option[B] - * def elements: Iterator[(A, B)] + * def iterator: Iterator[(A, B)] * def += (kv: (A, B)): this.type * def -= (key: A): this.type * @@ -104,7 +104,7 @@ trait MutableMapTemplate[A, B, +This <: MutableMapTemplate[A, B, This] with muta this += elem1 += elem2 ++= elems /** Adds a number of elements provided by a traversable object - * via its <code>elements</code> method and returns + * via its <code>iterator</code> method and returns * either the collection itself (if it is mutable), or a new collection * with the added elements. * @deprecated This operation will create a new map in the future. To add @@ -116,7 +116,7 @@ trait MutableMapTemplate[A, B, +This <: MutableMapTemplate[A, B, This] with muta @deprecated def ++(iter: Traversable[(A, B)]): this.type = { for (elem <- iter) +=(elem); this } /** Adds a number of elements provided by an iterator - * via its <code>elements</code> method and returns + * via its <code>iterator</code> method and returns * the collection itself. * @deprecated This operation will create a new map in the future. To add * elements as a side effect to an existing map and return @@ -163,7 +163,7 @@ trait MutableMapTemplate[A, B, +This <: MutableMapTemplate[A, B, This] with muta /** Removes all elements from the set. After this operation is completed, * the set will be empty. */ - def clear() { for ((k, v) <- elements) -=(k) } + def clear() { for ((k, v) <- this.iterator) -=(k) } /** Check if this map maps <code>key</code> to a value. * Return that value if it exists, otherwise put <code>default</code> @@ -181,7 +181,7 @@ trait MutableMapTemplate[A, B, +This <: MutableMapTemplate[A, B, This] with muta * @param f The transformation to apply */ def transform(f: (A, B) => B): this.type = { - elements foreach { + this.iterator foreach { case (key, value) => update(key, f(key, value)) } this @@ -199,10 +199,10 @@ trait MutableMapTemplate[A, B, +This <: MutableMapTemplate[A, B, This] with muta } /** @return the values of this map as a set */ - override def valueSet: immutable.Set[B] = immutable.Set.empty[B] ++ (self map (_._2)) + override def values: collection.immutable.Set[B] = immutable.Set.empty[B] ++ (self map (_._2)) override def clone(): This = - empty ++ thisCollection + empty ++= thisCollection /** The result when this map is used as a builder */ def result: This = thisCollection diff --git a/src/library/scala/collection/generic/MutableSetTemplate.scala b/src/library/scala/collection/generic/MutableSetTemplate.scala index bd2a094c96..40386fe27b 100644 --- a/src/library/scala/collection/generic/MutableSetTemplate.scala +++ b/src/library/scala/collection/generic/MutableSetTemplate.scala @@ -17,7 +17,7 @@ import script._ * To implement a concrete mutable set, you need to provide implementations of the following methods: * * def contains(elem: A): Boolean - * def elements: Iterator[A] + * def iterator: Iterator[A] * def += (elem: A): this.type * def -= (elem: A): this.type * @@ -204,7 +204,7 @@ trait MutableSetTemplate[A, +This <: MutableSetTemplate[A, This] with mutable.Se case Include(_, x) => this += x case Remove(_, x) => this -= x case Reset() => clear - case s: Script[_] => s.elements foreach << + case s: Script[_] => s.iterator foreach << case _ => throw new UnsupportedOperationException("message " + cmd + " not understood") } }
\ No newline at end of file diff --git a/src/library/scala/collection/generic/MutableVectorTemplate.scala b/src/library/scala/collection/generic/MutableVectorTemplate.scala index cfc65de9ec..a0cdfb0765 100644 --- a/src/library/scala/collection/generic/MutableVectorTemplate.scala +++ b/src/library/scala/collection/generic/MutableVectorTemplate.scala @@ -18,7 +18,7 @@ trait MutableVectorTemplate[A, +This <: MutableVectorTemplate[A, This] with muta */ override def view = new MutableVectorView[A, This] { protected lazy val underlying = self.thisCollection - override def elements = self.elements + override def iterator = self.iterator override def length = self.length override def apply(idx: Int) = self.apply(idx) override def update(idx: Int, elem: A) = self.update(idx, elem) diff --git a/src/library/scala/collection/generic/SequenceForwarder.scala b/src/library/scala/collection/generic/SequenceForwarder.scala index bf92128d41..354509da13 100644 --- a/src/library/scala/collection/generic/SequenceForwarder.scala +++ b/src/library/scala/collection/generic/SequenceForwarder.scala @@ -41,7 +41,7 @@ trait SequenceForwarder[+A] extends Sequence[A] with IterableForwarder[A] { override def prefixLength(p: A => Boolean) = underlying.prefixLength(p) override def indexWhere(p: A => Boolean, from: Int): Int = underlying.indexWhere(p, from) override def indexOf[B >: A](elem: B, from: Int): Int = underlying.indexOf(elem, from) - override def reversedElements: Iterator[A] = underlying.reversedElements + override def reverseIterator: Iterator[A] = underlying.reverseIterator override def startsWith[B](that: Sequence[B], offset: Int): Boolean = underlying.startsWith(that, offset) override def endsWith[B](that: Sequence[B]): Boolean = underlying.endsWith(that) override def indexOfSeq[B >: A](that: Sequence[B]): Int = underlying.indexOfSeq(that) diff --git a/src/library/scala/collection/generic/SequenceProxyTemplate.scala b/src/library/scala/collection/generic/SequenceProxyTemplate.scala index 1854267ad8..f6fed763b5 100644 --- a/src/library/scala/collection/generic/SequenceProxyTemplate.scala +++ b/src/library/scala/collection/generic/SequenceProxyTemplate.scala @@ -41,7 +41,7 @@ trait SequenceProxyTemplate[+A, +This <: SequenceTemplate[A, This] with Sequence override def lastIndexWhere(p: A => Boolean): Int = self.lastIndexWhere(p, length - 1) override def lastIndexWhere(p: A => Boolean, end: Int): Int = self.lastIndexWhere(p) override def reverse: This = self.reverse - override def reversedElements: Iterator[A] = self.reversedElements + override def reverseIterator: Iterator[A] = self.reverseIterator override def startsWith[B](that: Sequence[B], offset: Int): Boolean = self.startsWith(that, offset) override def startsWith[B](that: Sequence[B]): Boolean = self.startsWith(that) override def endsWith[B](that: Sequence[B]): Boolean = self.endsWith(that) diff --git a/src/library/scala/collection/generic/SequenceTemplate.scala b/src/library/scala/collection/generic/SequenceTemplate.scala index 8efbe9ebb8..736a230613 100644 --- a/src/library/scala/collection/generic/SequenceTemplate.scala +++ b/src/library/scala/collection/generic/SequenceTemplate.scala @@ -20,7 +20,7 @@ import generic._ * of type <code>A</code>. * It adds the following methods to class Iterable: * `length`, `lengthCompare`, `apply`, `isDefinedAt`, `segmentLength`, `prefixLengh`, - * `indexWhere`, `indexOf`, `lastIndexWhere`, `lastIndexOf`, `reverse`, `reversedElements`, + * `indexWhere`, `indexOf`, `lastIndexWhere`, `lastIndexOf`, `reverse`, `reverseIterator`, * `startsWith`, `endsWith`, `indexOfSeq`, , `zip`, `zipAll`, `zipWithIndex`. * * @@ -77,8 +77,8 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] */ def zip[A1 >: A, B, That](that: Sequence[B])(implicit bf: BuilderFactory[(A1, B), That, This]): That = { val b = bf(thisCollection) - val these = this.elements - val those = that.elements + val these = this.iterator + val those = that.iterator while (these.hasNext && those.hasNext) b += ((these.next, those.next)) b.result @@ -106,8 +106,8 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] */ def zipAll[B, A1 >: A, That](that: Sequence[B], thisElem: A1, thatElem: B)(implicit bf: BuilderFactory[(A1, B), That, This]): That = { val b = bf(thisCollection) - val these = this.elements - val those = that.elements + val these = this.iterator + val those = that.iterator while (these.hasNext && those.hasNext) b += ((these.next, those.next)) while (these.hasNext) @@ -242,7 +242,7 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] */ def lastIndexWhere(p: A => Boolean, end: Int): Int = { var i = length - 1 - val it = reversedElements + val it = reverseIterator while (it.hasNext && { val elem = it.next; (i > end || !p(elem)) }) i -= 1 i } @@ -266,7 +266,10 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] /** The elements of this sequence in reversed order */ - def reversedElements: Iterator[A] = reverse.elements + def reverseIterator: Iterator[A] = reverse.iterator + + /** @deprecated use `reverseIterator` instead */ + @deprecated def reversedElements = reverseIterator /** * Checks whether the argument sequence is contained at the @@ -282,8 +285,8 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] * @see String.startsWith */ def startsWith[B](that: Sequence[B], offset: Int): Boolean = { - val i = elements.drop(offset) - val j = that.elements + val i = this.iterator.drop(offset) + val j = that.iterator while (j.hasNext && i.hasNext) { if (i.next != j.next) return false } @@ -302,8 +305,8 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] * @see String.endsWith */ def endsWith[B](that: Sequence[B]): Boolean = { - val i = this.elements.drop(length - that.length) - val j = that.elements + val i = this.iterator.drop(length - that.length) + val j = that.iterator while (i.hasNext && j.hasNext && i.next == j.next) () !j.hasNext } @@ -467,7 +470,7 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] override def view = new SequenceView[A, This] { protected lazy val underlying = self.thisCollection - override def elements = self.elements + override def iterator = self.iterator override def length = self.length override def apply(idx: Int) = self.apply(idx) } @@ -476,8 +479,8 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] override def equals(that: Any): Boolean = that match { case that1: Sequence[a] => - val these = this.elements - val those = that1.elements + val these = this.iterator + val those = that1.iterator while (these.hasNext && those.hasNext && these.next() == those.next()) {} !these.hasNext && !those.hasNext case _ => @@ -507,8 +510,8 @@ trait SequenceTemplate[+A, +This <: IterableTemplate[A, This] with Sequence[A]] * <code>(s1, s2) forall { case (x, y) => f(x, y) }</code> */ @deprecated def equalsWith[B](that: Sequence[B])(f: (A,B) => Boolean): Boolean = { - val i = this.elements - val j = that.elements + val i = this.iterator + val j = that.iterator while (i.hasNext && j.hasNext && f(i.next, j.next)) () !i.hasNext && !j.hasNext } diff --git a/src/library/scala/collection/generic/SequenceViewTemplate.scala b/src/library/scala/collection/generic/SequenceViewTemplate.scala index 943fd9a80e..b11696ebaf 100644 --- a/src/library/scala/collection/generic/SequenceViewTemplate.scala +++ b/src/library/scala/collection/generic/SequenceViewTemplate.scala @@ -102,7 +102,7 @@ trait SequenceViewTemplate[+A, } trait Reversed extends Transformed[A] { - override def elements: Iterator[A] = self.reversedElements + override def iterator: Iterator[A] = self.reverseIterator override def length: Int = self.length override def apply(idx: Int): A = self.apply(length - 1 - idx) override def stringPrefix = super.stringPrefix+"R" @@ -113,7 +113,7 @@ trait SequenceViewTemplate[+A, protected[this] val patch: Sequence[B] protected[this] val replaced: Int private val plen = patch.length - override def elements: Iterator[B] = self.elements patch (from, patch.elements, replaced) + override def iterator: Iterator[B] = self.iterator patch (from, patch.iterator, replaced) override def length: Int = self.length + plen - replaced override def apply(idx: Int): B = if (idx < from) self.apply(idx) @@ -124,7 +124,7 @@ trait SequenceViewTemplate[+A, trait Zipped[B] extends Transformed[(A, B)] { protected[this] val other: Sequence[B] - override def elements: Iterator[(A, B)] = self.elements zip other.elements + override def iterator: Iterator[(A, B)] = self.iterator zip other.iterator override def length = self.length min other.length override def apply(idx: Int): (A, B) = (self.apply(idx), other.apply(idx)) override def stringPrefix = super.stringPrefix+"Z" diff --git a/src/library/scala/collection/generic/SetTemplate.scala b/src/library/scala/collection/generic/SetTemplate.scala index 4556f81976..cce6ec4229 100644 --- a/src/library/scala/collection/generic/SetTemplate.scala +++ b/src/library/scala/collection/generic/SetTemplate.scala @@ -15,7 +15,7 @@ package scala.collection.generic * (where `This` is the type of the set in question): * * def contains(key: A): Boolean - * def elements: Iterator[A] + * def iterator: Iterator[A] * def +(elem: A): This * def -(elem: A): This * diff --git a/src/library/scala/collection/generic/Sorted.scala b/src/library/scala/collection/generic/Sorted.scala index 007629811f..a8e45cc3a4 100644 --- a/src/library/scala/collection/generic/Sorted.scala +++ b/src/library/scala/collection/generic/Sorted.scala @@ -27,7 +27,7 @@ trait Sorted[K, +This <: Sorted[K, This]] extends Ranged[K, This] { */ def to(to: K): This = { // tough! - val i = keySet.from(to).elements; + val i = keySet.from(to).iterator; if (!i.hasNext) return thisCollection val next = i.next; if (next == to) { @@ -37,7 +37,7 @@ trait Sorted[K, +This <: Sorted[K, This]] extends Ranged[K, This] { } protected def hasAll(j: Iterator[K]): Boolean = { - val i = keySet.elements; + val i = keySet.iterator; if (!i.hasNext) return !j.hasNext; var in = i.next; while (j.hasNext) { diff --git a/src/library/scala/collection/generic/SortedSetTemplate.scala b/src/library/scala/collection/generic/SortedSetTemplate.scala index 4d02e93ba0..189131173b 100644 --- a/src/library/scala/collection/generic/SortedSetTemplate.scala +++ b/src/library/scala/collection/generic/SortedSetTemplate.scala @@ -32,7 +32,7 @@ self => override def range(from: A, until: A): This = rangeImpl(Some(from), Some(until)) override def subsetOf(that: Set[A]): Boolean = that match { - case that: SortedSet[_] => that.hasAll(elements) + case that: SortedSet[_] => that.hasAll(this.iterator) case that => super.subsetOf(that) } } diff --git a/src/library/scala/collection/generic/TraversableTemplate.scala b/src/library/scala/collection/generic/TraversableTemplate.scala index 721ee16df4..32402217c8 100644 --- a/src/library/scala/collection/generic/TraversableTemplate.scala +++ b/src/library/scala/collection/generic/TraversableTemplate.scala @@ -657,7 +657,7 @@ self => /** Returns a list with all elements of this traversable object. * @note Will not terminate for infinite-sized collections. */ - def toList: List[A] = (new ListBuffer[A] ++ thisCollection).toList + def toList: List[A] = (new ListBuffer[A] ++= thisCollection).toList /** Returns an iterable with all elements in this traversable object. * @note Will not terminate for infinite-sized collections. diff --git a/src/library/scala/collection/generic/TraversableView.scala b/src/library/scala/collection/generic/TraversableView.scala index c89639bab1..deacb1b5bb 100644 --- a/src/library/scala/collection/generic/TraversableView.scala +++ b/src/library/scala/collection/generic/TraversableView.scala @@ -20,7 +20,8 @@ trait TraversableView[+A, +Coll <: Traversable[_]] extends TraversableViewTempla object TraversableView { class NoBuilder[A] extends Builder[A, Nothing] { def +=(elem: A): this.type = this - def elements: Iterator[A] = Iterator.empty + def iterator: Iterator[A] = Iterator.empty + @deprecated def elements = iterator def result() = throw new UnsupportedOperationException("TraversableView.Builder.result") def clear() {} } diff --git a/src/library/scala/collection/generic/TraversableView.scala.1 b/src/library/scala/collection/generic/TraversableView.scala.1 index a080c816fe..916f1182ff 100755 --- a/src/library/scala/collection/generic/TraversableView.scala.1 +++ b/src/library/scala/collection/generic/TraversableView.scala.1 @@ -137,7 +137,8 @@ self => object TraversableView { class NoBuilder[A] extends Builder[A, Nothing, TraversableView[_, _]] { def +=(elem: A) {} - def elements: Iterator[A] = Iterator.empty + def iterator: Iterator[A] = Iterator.empty + @deprecated def elements = iterator def result() = throw new UnsupportedOperationException("TraversableView.Builder.result") def clear() {} } diff --git a/src/library/scala/collection/generic/VectorTemplate.scala b/src/library/scala/collection/generic/VectorTemplate.scala index 2c1d8496d5..549485ed40 100644 --- a/src/library/scala/collection/generic/VectorTemplate.scala +++ b/src/library/scala/collection/generic/VectorTemplate.scala @@ -24,7 +24,7 @@ trait VectorTemplate[+A, +This <: VectorTemplate[A, This] with Vector[A]] extend // Overridden methods from IterableTemplate - /** The iterator returned by the elements method + /** The iterator returned by the iterator method */ protected class Elements(start: Int, end: Int) extends scala.collection.BufferedIterator[A] { private var i = start @@ -52,7 +52,7 @@ trait VectorTemplate[+A, +This <: VectorTemplate[A, This] with Vector[A]] extend else this } - override def elements: Iterator[A] = new Elements(0, length) + override def iterator: Iterator[A] = new Elements(0, length) override def isEmpty: Boolean = { length == 0 } @@ -205,7 +205,7 @@ trait VectorTemplate[+A, +This <: VectorTemplate[A, This] with Vector[A]] extend b.result } - override def reversedElements: Iterator[A] = new Iterator[A] { + override def reverseIterator: Iterator[A] = new Iterator[A] { private var i = self.length def hasNext: Boolean = 0 < i def next: A = @@ -229,7 +229,7 @@ trait VectorTemplate[+A, +This <: VectorTemplate[A, This] with Vector[A]] extend case _ => var i = offset val thisLen = length - val thatElems = that.elements + val thatElems = that.iterator while (i < thisLen && thatElems.hasNext && this(i) == thatElems.next()) { i += 1 } @@ -272,7 +272,7 @@ trait VectorTemplate[+A, +This <: VectorTemplate[A, This] with Vector[A]] extend override def view = new VectorView[A, This] { protected lazy val underlying = self.thisCollection - override def elements = self.elements + override def iterator = self.iterator override def length = self.length override def apply(idx: Int) = self.apply(idx) } diff --git a/src/library/scala/collection/immutable/HashMap.scala b/src/library/scala/collection/immutable/HashMap.scala index 351cbf60d8..c20dc017f8 100644 --- a/src/library/scala/collection/immutable/HashMap.scala +++ b/src/library/scala/collection/immutable/HashMap.scala @@ -107,9 +107,9 @@ class HashMap[A, +B] extends Map[A,B] with ImmutableMapTemplate[A, B, HashMap[A, s } - def elements = synchronized { + def iterator = synchronized { makeCopyIfUpdated() - entries map {e => (e.key, getValue(e))} + entriesIterator map {e => (e.key, getValue(e))} } private def getValue(e: Entry) = diff --git a/src/library/scala/collection/immutable/HashSet.scala b/src/library/scala/collection/immutable/HashSet.scala index 86efa9c6c6..215fe80914 100644 --- a/src/library/scala/collection/immutable/HashSet.scala +++ b/src/library/scala/collection/immutable/HashSet.scala @@ -81,11 +81,11 @@ class HashSet[A] extends Set[A] s } - override def elements = synchronized { + override def iterator = synchronized { makeCopyIfUpdated() // note need to cache because (later versions of) set might be mutated while elements are traversed. - val cached = new mutable.ArrayBuffer() ++ super.elements - cached.elements + val cached = new mutable.ArrayBuffer() ++= super.iterator + cached.iterator } private def logLimit: Int = Math.sqrt(table.length).toInt diff --git a/src/library/scala/collection/immutable/ImmutableIterator.scala.disabled b/src/library/scala/collection/immutable/ImmutableIterator.scala.disabled index 7733c17bec..0cdfc4a988 100644 --- a/src/library/scala/collection/immutable/ImmutableIterator.scala.disabled +++ b/src/library/scala/collection/immutable/ImmutableIterator.scala.disabled @@ -104,7 +104,10 @@ sealed abstract class ImmutableIterator[+A] { /** Converts this immutable iterator into a conventional iterator. */ - def elements: Iterator[A] = new Elements + def iterator: Iterator[A] = new Elements + + @deprecated def elements = iterator + } diff --git a/src/library/scala/collection/immutable/IntMap.scala b/src/library/scala/collection/immutable/IntMap.scala index a7b66628bb..32ad7fca42 100644 --- a/src/library/scala/collection/immutable/IntMap.scala +++ b/src/library/scala/collection/immutable/IntMap.scala @@ -145,7 +145,7 @@ sealed abstract class IntMap[+T] extends scala.collection.immutable.Map[Int, T] /** * Iterator over key, value pairs of the map in unsigned order of the keys. */ - def elements : Iterator[(Int, T)] = this match { + def iterator : Iterator[(Int, T)] = this match { case IntMap.Nil => Iterator.empty; case _ => new IntMapEntryIterator(this); } @@ -159,7 +159,7 @@ sealed abstract class IntMap[+T] extends scala.collection.immutable.Map[Int, T] case IntMap.Nil => {}; } - override def keys : Iterator[Int] = this match { + override def keysIterator : Iterator[Int] = this match { case IntMap.Nil => Iterator.empty; case _ => new IntMapKeyIterator(this); } @@ -176,7 +176,7 @@ sealed abstract class IntMap[+T] extends scala.collection.immutable.Map[Int, T] case IntMap.Nil => {} } - override def values : Iterator[T] = this match { + override def valuesIterator : Iterator[T] = this match { case IntMap.Nil => Iterator.empty; case _ => new IntMapValueIterator(this); } diff --git a/src/library/scala/collection/immutable/List.scala b/src/library/scala/collection/immutable/List.scala index 9a205e97c4..38ddfee8b5 100644 --- a/src/library/scala/collection/immutable/List.scala +++ b/src/library/scala/collection/immutable/List.scala @@ -74,7 +74,7 @@ sealed abstract class List[+A] extends LinearSequence[A] */ def :::[B >: A](prefix: List[B]): List[B] = if (isEmpty) prefix - else (new ListBuffer[B] ++ prefix).prependToList(this) + else (new ListBuffer[B] ++= prefix).prependToList(this) /** Reverse the given prefix and append the current list to that. * This function is equivalent to an application of <code>reverse</code> @@ -807,7 +807,7 @@ object List extends SequenceFactory[List] { * <code>[a<sub>0</sub>, ..., a<sub>k</sub>]</code>, * <code>[b<sub>0</sub>, ..., b<sub>l</sub>]</code> and * <code>n = min(k,l)</code> - * @deprecated use (xs, ys).forall(f) instead + * @deprecated use (xs, ys).exists(f) instead */ @deprecated def exists2[A,B](xs: List[A], ys: List[B])(f: (A, B) => Boolean): Boolean = { var xc = xs diff --git a/src/library/scala/collection/immutable/ListMap.scala b/src/library/scala/collection/immutable/ListMap.scala index 5c57715409..816018bf28 100644 --- a/src/library/scala/collection/immutable/ListMap.scala +++ b/src/library/scala/collection/immutable/ListMap.scala @@ -86,14 +86,14 @@ class ListMap[A, +B] extends Map[A, B] with ImmutableMapTemplate[A, B, ListMap[A /** Returns an iterator over key-value pairs. */ - def elements: Iterator[(A,B)] = + def iterator: Iterator[(A,B)] = new Iterator[(A,B)] { var self: ListMap[A,B] = ListMap.this def hasNext = !self.isEmpty def next: (A,B) = if (!hasNext) throw new NoSuchElementException("next on empty iterator") else { val res = (self.key, self.value); self = self.next; res } - }.toList.reverse.elements + }.toList.reverseIterator protected def key: A = throw new NoSuchElementException("empty map") protected def value: B = throw new NoSuchElementException("empty map") diff --git a/src/library/scala/collection/immutable/ListSet.scala b/src/library/scala/collection/immutable/ListSet.scala index 210413171b..8dc961a308 100644 --- a/src/library/scala/collection/immutable/ListSet.scala +++ b/src/library/scala/collection/immutable/ListSet.scala @@ -62,7 +62,7 @@ class ListSet[A] extends Set[A] * @throws Predef.NoSuchElementException * @return the new iterator */ - def elements: Iterator[A] = new Iterator[A] { + def iterator: Iterator[A] = new Iterator[A] { var that: ListSet[A] = self; def hasNext = !that.isEmpty; def next: A = @@ -70,6 +70,8 @@ class ListSet[A] extends Set[A] else { val res = that.elem; that = that.next; res } } + @deprecated def elements = iterator + /** * @throws Predef.NoSuchElementException */ diff --git a/src/library/scala/collection/immutable/LongMap.scala b/src/library/scala/collection/immutable/LongMap.scala index f30f9eb17d..346e97345f 100644 --- a/src/library/scala/collection/immutable/LongMap.scala +++ b/src/library/scala/collection/immutable/LongMap.scala @@ -146,7 +146,7 @@ sealed abstract class LongMap[+T] extends scala.collection.immutable.Map[Long, T /** * Iterator over key, value pairs of the map in unsigned order of the keys. */ - def elements : Iterator[(Long, T)] = this match { + def iterator: Iterator[(Long, T)] = this match { case LongMap.Nil => Iterator.empty; case _ => new LongMapEntryIterator(this); } @@ -160,7 +160,7 @@ sealed abstract class LongMap[+T] extends scala.collection.immutable.Map[Long, T case LongMap.Nil => {}; } - override def keys : Iterator[Long] = this match { + override def keysIterator : Iterator[Long] = this match { case LongMap.Nil => Iterator.empty; case _ => new LongMapKeyIterator(this); } @@ -177,7 +177,7 @@ sealed abstract class LongMap[+T] extends scala.collection.immutable.Map[Long, T case LongMap.Nil => {} } - override def values : Iterator[T] = this match { + override def valuesIterator : Iterator[T] = this match { case LongMap.Nil => Iterator.empty; case _ => new LongMapValueIterator(this); } diff --git a/src/library/scala/collection/immutable/Map.scala b/src/library/scala/collection/immutable/Map.scala index 103d8f3d5a..ef3c3006f0 100644 --- a/src/library/scala/collection/immutable/Map.scala +++ b/src/library/scala/collection/immutable/Map.scala @@ -48,7 +48,7 @@ object Map extends ImmutableMapFactory[Map] { class WithDefault[A, +B](underlying: Map[A, B], d: A => B) extends Map[A, B] { override def size = underlying.size def get(key: A) = underlying.get(key) - def elements = underlying.elements + def iterator = underlying.iterator override def empty = new WithDefault(underlying.empty, d) override def updated[B1 >: B](key: A, value: B1): WithDefault[A, B1] = new WithDefault[A, B1](underlying.updated[B1](key, value), d) def + [B1 >: B](kv: (A, B1)): WithDefault[A, B1] = updated(kv._1, kv._2) @@ -60,7 +60,7 @@ object Map extends ImmutableMapFactory[Map] { class EmptyMap[A, +B] extends Map[A, B] { override def size: Int = 0 def get(key: A): Option[B] = None - def elements: Iterator[(A, B)] = Iterator.empty + def iterator: Iterator[(A, B)] = Iterator.empty override def updated [B1 >: B] (key: A, value: B1): Map[A, B1] = new Map1(key, value) def + [B1 >: B](kv: (A, B1)): Map[A, B1] = updated(kv._1, kv._2) def - (key: A): Map[A, B] = this @@ -71,7 +71,7 @@ object Map extends ImmutableMapFactory[Map] { override def size = 1 def get(key: A): Option[B] = if (key == key1) Some(value1) else None - def elements = Iterator((key1, value1)) + def iterator = Iterator((key1, value1)) override def updated [B1 >: B] (key: A, value: B1): Map[A, B1] = if (key == key1) new Map1(key1, value) else new Map2(key1, value1, key, value) @@ -90,7 +90,7 @@ object Map extends ImmutableMapFactory[Map] { if (key == key1) Some(value1) else if (key == key2) Some(value2) else None - def elements = Iterator((key1, value1), (key2, value2)) + def iterator = Iterator((key1, value1), (key2, value2)) override def updated [B1 >: B] (key: A, value: B1): Map[A, B1] = if (key == key1) new Map2(key1, value, key2, value2) else if (key == key2) new Map2(key1, value1, key2, value) @@ -113,7 +113,7 @@ object Map extends ImmutableMapFactory[Map] { else if (key == key2) Some(value2) else if (key == key3) Some(value3) else None - def elements = Iterator((key1, value1), (key2, value2), (key3, value3)) + def iterator = Iterator((key1, value1), (key2, value2), (key3, value3)) override def updated [B1 >: B] (key: A, value: B1): Map[A, B1] = if (key == key1) new Map3(key1, value, key2, value2, key3, value3) else if (key == key2) new Map3(key1, value1, key2, value, key3, value3) @@ -139,7 +139,7 @@ object Map extends ImmutableMapFactory[Map] { else if (key == key3) Some(value3) else if (key == key4) Some(value4) else None - def elements = Iterator((key1, value1), (key2, value2), (key3, value3), (key4, value4)) + def iterator = Iterator((key1, value1), (key2, value2), (key3, value3), (key4, value4)) override def updated [B1 >: B] (key: A, value: B1): Map[A, B1] = if (key == key1) new Map4(key1, value, key2, value2, key3, value3, key4, value4) else if (key == key2) new Map4(key1, value1, key2, value, key3, value3, key4, value4) diff --git a/src/library/scala/collection/immutable/PagedSeq.scala b/src/library/scala/collection/immutable/PagedSeq.scala index 85eca5777b..fe34195238 100644 --- a/src/library/scala/collection/immutable/PagedSeq.scala +++ b/src/library/scala/collection/immutable/PagedSeq.scala @@ -34,7 +34,7 @@ object PagedSeq { /** Constructs a character sequence from a character iterable */ def fromIterable[T](source: Iterable[T]): PagedSeq[T] = - fromIterator(source.elements) + fromIterator(source.iterator) /** Constructs a character sequence from a string iterator */ def fromStrings(source: Iterator[String]): PagedSeq[Char] = { @@ -55,7 +55,7 @@ object PagedSeq { /** Constructs a character sequence from a string iterable */ def fromStrings(source: Iterable[String]): PagedSeq[Char] = - fromStrings(source.elements) + fromStrings(source.iterator) /** Constructs a character sequence from a line iterator * Lines do not contain trailing `\n' characters; The method inserts @@ -77,7 +77,7 @@ object PagedSeq { * a line separator `\n' between any two lines in the sequence. */ def fromLines(source: Iterable[String]): PagedSeq[Char] = - fromLines(source.elements) + fromLines(source.iterator) /** Constructs a character sequence from an input reader */ @@ -180,7 +180,7 @@ class PagedSeq[T] protected (more: (Array[T], Int, Int) => Int, /** Convert sequence to string */ override def toString = { val buf = new StringBuilder - for (ch <- elements) buf append ch + for (ch <- PagedSeq.this.iterator) buf append ch buf.toString } } diff --git a/src/library/scala/collection/immutable/Queue.scala b/src/library/scala/collection/immutable/Queue.scala index f7d2da9a09..dd61c2271c 100644 --- a/src/library/scala/collection/immutable/Queue.scala +++ b/src/library/scala/collection/immutable/Queue.scala @@ -29,7 +29,7 @@ object Queue { class Queue[+A](elem: A*) extends Seq[A] { protected val in: List[A] = Nil - protected val out: List[A] = elem.elements.toList + protected val out: List[A] = elem.iterator.toList protected def mkQueue[A](i: List[A], o: List[A]): Queue[A] = new Queue[A]() { @@ -56,7 +56,7 @@ class Queue[+A](elem: A*) extends Seq[A] { /** Returns the elements in the list as an iterator */ - override def elements: Iterator[A] = (out ::: in.reverse).elements + override def iterator: Iterator[A] = (out ::: in.reverse).iterator /** Checks if the queue is empty. * @@ -96,7 +96,7 @@ class Queue[+A](elem: A*) extends Seq[A] { */ @deprecated def +[B >: A](iter: Iterable[B]) = { var q: List[B] = in - iter.elements.foreach(e => q = e :: q) + iter.iterator.foreach(e => q = e :: q) mkQueue(q, out) } @@ -110,7 +110,7 @@ class Queue[+A](elem: A*) extends Seq[A] { */ def enqueue[B >: A](iter: Iterable[B]) = { var q: List[B] = in - iter.elements.foreach(e => q = e :: q) + iter.iterator.foreach(e => q = e :: q) mkQueue(q, out) } diff --git a/src/library/scala/collection/immutable/RedBlack.scala b/src/library/scala/collection/immutable/RedBlack.scala index c50dba65f5..a13250363d 100644 --- a/src/library/scala/collection/immutable/RedBlack.scala +++ b/src/library/scala/collection/immutable/RedBlack.scala @@ -32,7 +32,8 @@ abstract class RedBlack[A] { /** @deprecated use foreach instead */ @deprecated def visit[T](input : T)(f : (T,A,B) => Tuple2[Boolean,T]) : Tuple2[Boolean,T]; def toStream: Stream[(A,B)] - def elements: Iterator[Pair[A, B]] + def iterator: Iterator[(A, B)] + @deprecated def elements = iterator def upd[B1 >: B](k: A, v: B1): Tree[B1] def del(k: A): Tree[B] def smallest: NonEmpty[B] @@ -87,8 +88,8 @@ abstract class RedBlack[A] { def toStream: Stream[(A,B)] = left.toStream append Stream((key,value)) append right.toStream - def elements: Iterator[Pair[A, B]] = - left.elements append Iterator.single(Pair(key, value)) append right.elements + def iterator: Iterator[(A, B)] = + left.iterator append Iterator.single(Pair(key, value)) append right.iterator def foreach[U](f: (A, B) => U) { left foreach f @@ -129,7 +130,7 @@ abstract class RedBlack[A] { def upd[B](k: A, v: B): Tree[B] = RedTree(k, v, Empty, Empty) def del(k: A): Tree[Nothing] = this def smallest: NonEmpty[Nothing] = throw new NoSuchElementException("empty map") - def elements: Iterator[Pair[A, Nothing]] = Iterator.empty + def iterator: Iterator[(A, Nothing)] = Iterator.empty def toStream: Stream[(A,Nothing)] = Stream.empty def foreach[U](f: (A, Nothing) => U) {} diff --git a/src/library/scala/collection/immutable/Set.scala b/src/library/scala/collection/immutable/Set.scala index 78aaa54f1c..8acf786358 100644 --- a/src/library/scala/collection/immutable/Set.scala +++ b/src/library/scala/collection/immutable/Set.scala @@ -17,7 +17,7 @@ import generic._ * have to provide functionality for the abstract methods in Set: * * def contains(elem: A): Boolean - * def elements: Iterator[A] + * def iterator: Iterator[A] * def + (elem: A): This * def - (elem: A): This * @@ -48,7 +48,8 @@ object Set extends SetFactory[Set] { def contains(elem: A): Boolean = false def + (elem: A): Set[A] = new Set1(elem) def - (elem: A): Set[A] = this - def elements: Iterator[A] = Iterator.empty + def iterator: Iterator[A] = Iterator.empty + @deprecated def elements = iterator override def foreach[U](f: A => U): Unit = {} } @@ -64,8 +65,9 @@ object Set extends SetFactory[Set] { def - (elem: A): Set[A] = if (elem == elem1) new EmptySet[A] else this - def elements: Iterator[A] = + def iterator: Iterator[A] = Iterator(elem1) + @deprecated def elements = iterator override def foreach[U](f: A => U): Unit = { f(elem1) } @@ -84,8 +86,9 @@ object Set extends SetFactory[Set] { if (elem == elem1) new Set1(elem2) else if (elem == elem2) new Set1(elem1) else this - def elements: Iterator[A] = + def iterator: Iterator[A] = Iterator(elem1, elem2) + @deprecated def elements = iterator override def foreach[U](f: A => U): Unit = { f(elem1); f(elem2) } @@ -105,8 +108,9 @@ object Set extends SetFactory[Set] { else if (elem == elem2) new Set2(elem1, elem3) else if (elem == elem3) new Set2(elem1, elem2) else this - def elements: Iterator[A] = + def iterator: Iterator[A] = Iterator(elem1, elem2, elem3) + @deprecated def elements = iterator override def foreach[U](f: A => U): Unit = { f(elem1); f(elem2); f(elem3) } @@ -127,8 +131,9 @@ object Set extends SetFactory[Set] { else if (elem == elem3) new Set3(elem1, elem2, elem4) else if (elem == elem4) new Set3(elem1, elem2, elem3) else this - def elements: Iterator[A] = + def iterator: Iterator[A] = Iterator(elem1, elem2, elem3, elem4) + @deprecated def elements = iterator override def foreach[U](f: A => U): Unit = { f(elem1); f(elem2); f(elem3); f(elem4) } diff --git a/src/library/scala/collection/immutable/Stack.scala b/src/library/scala/collection/immutable/Stack.scala index 7be6635853..04e9251bec 100644 --- a/src/library/scala/collection/immutable/Stack.scala +++ b/src/library/scala/collection/immutable/Stack.scala @@ -105,7 +105,7 @@ class Stack[+A] extends Sequence[A] { * * @return an iterator over all stack elements. */ - override def elements: Iterator[A] = new Iterator[A] { + override def iterator: Iterator[A] = new Iterator[A] { private var cur = Stack.this def hasNext: Boolean = !cur.isEmpty def next: A = { val r = top; cur = cur.pop; r } diff --git a/src/library/scala/collection/immutable/Stream.scala b/src/library/scala/collection/immutable/Stream.scala index 7b5e3f7659..538e9d85fe 100644 --- a/src/library/scala/collection/immutable/Stream.scala +++ b/src/library/scala/collection/immutable/Stream.scala @@ -184,7 +184,7 @@ self => * @param p the predicate used to filter the stream. * @return the elements of this stream satisfying <code>p</code>. */ - override def partition(p: A => Boolean): (Stream[A], Stream[A]) = (filter(p(_)), remove(p(_))) + override def partition(p: A => Boolean): (Stream[A], Stream[A]) = (filter(p(_)), filterNot(p(_))) /** Returns a stream formed from this stream and the specified stream * <code>that</code> by associating each element of the former with @@ -200,7 +200,7 @@ self => def loop(these: Stream[A], elems2: Iterator[B]): Stream[(A1, B)] = if (these.isEmpty || !elems2.hasNext) Stream.Empty else new Stream.Cons((these.head, elems2.next), loop(these.tail, elems2)) - if (bf.isInstanceOf[Stream.StreamBuilderFactory[_]]) loop(this, that.elements).asInstanceOf[That] + if (bf.isInstanceOf[Stream.StreamBuilderFactory[_]]) loop(this, that.iterator).asInstanceOf[That] else super.zip[A1, B, That](that) } @@ -378,7 +378,7 @@ object Stream extends SequenceFactory[Stream] { * this builder should be bypassed. */ class StreamBuilder[A] extends LazyBuilder[A, Stream[A]] { - def result: Stream[A] = (for (xs <- parts.elements; x <- xs.toIterable.elements) yield x).toStream + def result: Stream[A] = (for (xs <- parts.iterator; x <- xs.toIterable.iterator) yield x).toStream } object Empty extends Stream[Nothing] { @@ -507,7 +507,7 @@ object Stream extends SequenceFactory[Stream] { /** The concatenation of a sequence of streams * @deprecated use xs.flatten instead */ - def concat[A](xs: Iterable[Stream[A]]): Stream[A] = concat(xs.elements) + def concat[A](xs: Iterable[Stream[A]]): Stream[A] = concat(xs.iterator) /** The concatenation of all streams returned by an iterator * @deprecated use xs.toStream.flatten instead diff --git a/src/library/scala/collection/immutable/TreeHashMap.scala b/src/library/scala/collection/immutable/TreeHashMap.scala index 780a69dfde..1b45a8b5b8 100644 --- a/src/library/scala/collection/immutable/TreeHashMap.scala +++ b/src/library/scala/collection/immutable/TreeHashMap.scala @@ -36,7 +36,7 @@ object TreeHashMap { * @author David MacIver */ class TreeHashMap[Key, +Value] private (private val underlying : IntMap[AssocMap[Key, Value]]) extends scala.collection.immutable.Map[Key, Value]{ - def elements : Iterator[(Key, Value)] = new Iterator[(Key, Value)]{ + def iterator : Iterator[(Key, Value)] = new Iterator[(Key, Value)]{ val assocIt = new AssocMapIterator(AssocMap.empty[Key, Value]); val intIterator = underlying.values; @@ -182,7 +182,9 @@ private[collection] sealed abstract class AssocMap[Key, +Value] extends immutabl case Nil() => AssocMap.empty; } - def elements : Iterator[(Key, Value)] = new AssocMapIterator(this); + def iterator : Iterator[(Key, Value)] = new AssocMapIterator(this) + + @deprecated def elements = iterator override final def foreach[U](f : ((Key, Value)) => U) = this match { case Cons(key, value, tail) => { f((key, value)); tail.foreach(f); } diff --git a/src/library/scala/collection/immutable/TreeMap.scala b/src/library/scala/collection/immutable/TreeMap.scala index 2298a64ba7..cff70586ab 100644 --- a/src/library/scala/collection/immutable/TreeMap.scala +++ b/src/library/scala/collection/immutable/TreeMap.scala @@ -112,7 +112,7 @@ class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit va * * @return the new iterator */ - def elements: Iterator[(A, B)] = tree.toStream.elements + def iterator: Iterator[(A, B)] = tree.toStream.iterator override def toStream: Stream[(A, B)] = tree.toStream diff --git a/src/library/scala/collection/immutable/TreeSet.scala b/src/library/scala/collection/immutable/TreeSet.scala index 0f352356b8..93faa59b45 100644 --- a/src/library/scala/collection/immutable/TreeSet.scala +++ b/src/library/scala/collection/immutable/TreeSet.scala @@ -82,7 +82,9 @@ class TreeSet[A <% Ordered[A]](override val size: Int, t: RedBlack[A]#Tree[Unit] * * @return the new iterator */ - def elements: Iterator[A] = tree.toStream.elements map (_._1) + def iterator: Iterator[A] = tree.toStream.iterator map (_._1) + + @deprecated def elements = iterator override def toStream: Stream[A] = tree.toStream map (_._1) diff --git a/src/library/scala/collection/mutable/ArrayBuffer.scala b/src/library/scala/collection/mutable/ArrayBuffer.scala index ae17cc33b4..d25c55f4af 100644 --- a/src/library/scala/collection/mutable/ArrayBuffer.scala +++ b/src/library/scala/collection/mutable/ArrayBuffer.scala @@ -58,7 +58,7 @@ class ArrayBuffer[A](override protected val initialSize: Int) } /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterfable object. @@ -91,7 +91,7 @@ class ArrayBuffer[A](override protected val initialSize: Int) } /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. @@ -148,7 +148,7 @@ class ArrayBuffer[A](override protected val initialSize: Int) * * @return an <code>ArrayBuffer</code> with the same elements. */ - override def clone(): ArrayBuffer[A] = new ArrayBuffer[A] ++ this + override def clone(): ArrayBuffer[A] = new ArrayBuffer[A] ++= this def result: ArrayBuffer[A] = this diff --git a/src/library/scala/collection/mutable/ArrayStack.scala b/src/library/scala/collection/mutable/ArrayStack.scala index 8461191ff8..cae18452f3 100644 --- a/src/library/scala/collection/mutable/ArrayStack.scala +++ b/src/library/scala/collection/mutable/ArrayStack.scala @@ -153,7 +153,7 @@ class ArrayStack[T] private(private var table : Array[AnyRef], /** * Iterates over the stack in fifo order. */ - def elements = new Iterator[T]{ + def iterator: Iterator[T] = new Iterator[T]{ var currentIndex = index; def hasNext = currentIndex > 0; def next = { @@ -162,6 +162,8 @@ class ArrayStack[T] private(private var table : Array[AnyRef], } } + @deprecated def elements = iterator + override def foreach[U](f : T => U){ var currentIndex = index; while(currentIndex > 0){ diff --git a/src/library/scala/collection/mutable/BufferProxy.scala b/src/library/scala/collection/mutable/BufferProxy.scala index f430cae83d..b45e151da9 100644 --- a/src/library/scala/collection/mutable/BufferProxy.scala +++ b/src/library/scala/collection/mutable/BufferProxy.scala @@ -27,7 +27,7 @@ trait BufferProxy[A] extends Buffer[A] with Proxy { def length: Int = self.length - override def elements: Iterator[A] = self.elements + override def iterator: Iterator[A] = self.iterator def apply(n: Int): A = self.apply(n) @@ -48,7 +48,7 @@ trait BufferProxy[A] extends Buffer[A] with Proxy { override def readOnly = self.readOnly /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. @@ -57,7 +57,7 @@ trait BufferProxy[A] extends Buffer[A] with Proxy { override def ++(iter: Iterable[A]): Buffer[A] = self.++(iter) /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. + * via its <code>iterator</code> method. * * @param iter the iterable object. */ @@ -70,7 +70,7 @@ trait BufferProxy[A] extends Buffer[A] with Proxy { override def append(elems: A*): Unit = self.++=(elems) /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. + * via its <code>iterator</code> method. * * @param iter the iterable object. */ @@ -84,7 +84,7 @@ trait BufferProxy[A] extends Buffer[A] with Proxy { def +:(elem: A): Buffer[A] = self.+:(elem) /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. @@ -98,7 +98,7 @@ trait BufferProxy[A] extends Buffer[A] with Proxy { override def prepend(elems: A*): Unit = self.prependAll(elems) /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. diff --git a/src/library/scala/collection/mutable/DefaultMapModel.scala b/src/library/scala/collection/mutable/DefaultMapModel.scala index 9acf089506..f76a54c739 100644 --- a/src/library/scala/collection/mutable/DefaultMapModel.scala +++ b/src/library/scala/collection/mutable/DefaultMapModel.scala @@ -40,6 +40,7 @@ trait DefaultMapModel[A, B] extends Map[A, B] { def += (kv: (A, B)): this.type = { put(kv._1, kv._2); this } - def elements = entries map {e => (e.key, e.value)} + def iterator = entries map {e => (e.key, e.value)} + } diff --git a/src/library/scala/collection/mutable/FlatHashTable.scala b/src/library/scala/collection/mutable/FlatHashTable.scala index dd09af381e..de926e8108 100644 --- a/src/library/scala/collection/mutable/FlatHashTable.scala +++ b/src/library/scala/collection/mutable/FlatHashTable.scala @@ -113,7 +113,7 @@ trait FlatHashTable[A] { None } - def elements = new Iterator[A] { + def iterator = new Iterator[A] { private var i = 0 def hasNext: Boolean = { while (i < table.length && (null == table(i))) i += 1 @@ -124,6 +124,8 @@ trait FlatHashTable[A] { else Iterator.empty.next } + @deprecated def elements = iterator + private def growTable() { val oldtable = table table = new Array[AnyRef](table.length * 2) diff --git a/src/library/scala/collection/mutable/HashMap.scala b/src/library/scala/collection/mutable/HashMap.scala index f8ba594d4c..255358ae1f 100644 --- a/src/library/scala/collection/mutable/HashMap.scala +++ b/src/library/scala/collection/mutable/HashMap.scala @@ -54,7 +54,7 @@ class HashMap[A, B] extends Map[A, B] def -=(key: A): this.type = { removeEntry(key); this } - def elements = entries map {e => (e.key, e.value)} + def iterator = entriesIterator map {e => (e.key, e.value)} } /** This class implements mutable maps using a hashtable. diff --git a/src/library/scala/collection/mutable/HashSet.scala b/src/library/scala/collection/mutable/HashSet.scala index d5eba30552..20e5a1e6b5 100644 --- a/src/library/scala/collection/mutable/HashSet.scala +++ b/src/library/scala/collection/mutable/HashSet.scala @@ -48,7 +48,7 @@ class HashSet[A] extends Set[A] } } - override def clone(): HashSet[A] = new HashSet[A] ++ this + override def clone(): HashSet[A] = new HashSet[A] ++= this } /** Factory object for `HashSet` class */ diff --git a/src/library/scala/collection/mutable/HashTable.scala b/src/library/scala/collection/mutable/HashTable.scala index ada2df83b3..be0a84bd41 100644 --- a/src/library/scala/collection/mutable/HashTable.scala +++ b/src/library/scala/collection/mutable/HashTable.scala @@ -111,7 +111,7 @@ trait HashTable[A] extends AnyRef { /** An iterator returning all entries */ - protected def entries: Iterator[Entry] = new Iterator[Entry] { + protected def entriesIterator: Iterator[Entry] = new Iterator[Entry] { val iterTable = table var idx = table.length - 1 var es = iterTable(idx).asInstanceOf[Entry] @@ -131,6 +131,11 @@ trait HashTable[A] extends AnyRef { } } + /** An iterator returning all entries + * @deprecated use entriesIterator instead + */ + @deprecated protected def entries: Iterator[Entry] = entriesIterator + /** Remove all entries from table */ def clear() { diff --git a/src/library/scala/collection/mutable/History.scala b/src/library/scala/collection/mutable/History.scala index 6f2ab4b160..25fe640c2a 100644 --- a/src/library/scala/collection/mutable/History.scala +++ b/src/library/scala/collection/mutable/History.scala @@ -38,8 +38,8 @@ class History[A, B] extends AnyRef with Subscriber[A, B] with Collection[(B, A)] } override def size: Int = log.length - def elements: Iterator[(B, A)] = log.elements - def events: Iterator[A] = log.elements.map { case (_, e) => e } + def iterator: Iterator[(B, A)] = log.iterator + def events: Iterator[A] = log.iterator.map { case (_, e) => e } def clear(): Unit = log.clear } diff --git a/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala b/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala index 12c8140d8a..86d8facfc4 100644 --- a/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala +++ b/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala @@ -40,13 +40,17 @@ extends Map[A, B] override def isDefinedAt(key: A) = imap.isDefinedAt(key) - override def keys: Iterator[A] = imap.keys + override def keys: collection.Set[A] = imap.keys - override def keySet: collection.Set[A] = imap.keySet + override def keysIterator: Iterator[A] = imap.keysIterator - override def values: Iterator[B] = imap.values + override def values: collection.Set[A] = imap.values - def elements: Iterator[(A, B)] = imap.elements + override def valuesIterator: Iterator[B] = imap.valuesIterator + + def iterator: Iterator[(A, B)] = imap.iterator + + @deprecated def elements = iterator override def toList: List[(A, B)] = imap.toList diff --git a/src/library/scala/collection/mutable/ImmutableSetAdaptor.scala b/src/library/scala/collection/mutable/ImmutableSetAdaptor.scala index af25841f84..bac4f95246 100644 --- a/src/library/scala/collection/mutable/ImmutableSetAdaptor.scala +++ b/src/library/scala/collection/mutable/ImmutableSetAdaptor.scala @@ -39,7 +39,9 @@ class ImmutableSetAdaptor[A](protected var set: immutable.Set[A]) extends Set[A] override def toString = set.toString - def elements: Iterator[A] = set.elements + def iterator: Iterator[A] = set.iterator + + @deprecated override def elements: Iterator[A] = iterator def +=(elem: A): this.type = { set = set + elem; this } diff --git a/src/library/scala/collection/mutable/LinkedHashMap.scala b/src/library/scala/collection/mutable/LinkedHashMap.scala index 29e77fb01c..c43a3ee2f4 100644 --- a/src/library/scala/collection/mutable/LinkedHashMap.scala +++ b/src/library/scala/collection/mutable/LinkedHashMap.scala @@ -75,7 +75,7 @@ class LinkedHashMap[A, B] extends Map[A, B] def += (kv: (A, B)): this.type = { put(kv._1, kv._2); this } def -=(key: A): this.type = { remove(key); this } - def elements: Iterator[(A, B)] = new Iterator[(A, B)] { + def iterator: Iterator[(A, B)] = new Iterator[(A, B)] { private var cur = firstEntry def hasNext = cur ne null def next = @@ -83,7 +83,7 @@ class LinkedHashMap[A, B] extends Map[A, B] else Iterator.empty.next } - override def keys: Iterator[A] = new Iterator[A] { + override def keysIterator: Iterator[A] = new Iterator[A] { private var cur = firstEntry def hasNext = cur ne null def next = @@ -91,7 +91,7 @@ class LinkedHashMap[A, B] extends Map[A, B] else Iterator.empty.next } - override def values: Iterator[B] = new Iterator[B] { + override def valuesIterator: Iterator[B] = new Iterator[B] { private var cur = firstEntry def hasNext = cur ne null def next = { val res = cur.value; cur = cur.later; res } diff --git a/src/library/scala/collection/mutable/LinkedHashSet.scala b/src/library/scala/collection/mutable/LinkedHashSet.scala index 14f6b18722..f2825db975 100644 --- a/src/library/scala/collection/mutable/LinkedHashSet.scala +++ b/src/library/scala/collection/mutable/LinkedHashSet.scala @@ -47,7 +47,7 @@ class LinkedHashSet[A] extends Set[A] super.clear() } - override def elements = ordered.elements + override def iterator = ordered.iterator override def foreach[U](f: A => U) = ordered foreach f } diff --git a/src/library/scala/collection/mutable/ListBuffer.scala b/src/library/scala/collection/mutable/ListBuffer.scala index a83f620699..c75e18dcd1 100644 --- a/src/library/scala/collection/mutable/ListBuffer.scala +++ b/src/library/scala/collection/mutable/ListBuffer.scala @@ -277,7 +277,7 @@ final class ListBuffer[A] this } - override def elements = new Iterator[A] { + override def iterator = new Iterator[A] { var cursor: List[A] = null def hasNext: Boolean = !start.isEmpty && cursor != last0 def next(): A = @@ -309,7 +309,7 @@ final class ListBuffer[A] * * @return a <code>ListBuffer</code> with the same elements. */ - override def clone(): ListBuffer[A] = (new ListBuffer[A]) ++ this + override def clone(): ListBuffer[A] = (new ListBuffer[A]) ++= this /** Defines the prefix of the string representation. * diff --git a/src/library/scala/collection/mutable/ListMap.scala b/src/library/scala/collection/mutable/ListMap.scala index 8b8e5d87a6..a0d844cb5d 100644 --- a/src/library/scala/collection/mutable/ListMap.scala +++ b/src/library/scala/collection/mutable/ListMap.scala @@ -23,7 +23,7 @@ class ListMap[A, B] extends Map[A, B] with MutableMapTemplate[A, B, ListMap[A, B private var siz: Int = 0 def get(key: A): Option[B] = elems find (_._1 == key) map (_._2) - def elements: Iterator[(A, B)] = elems.elements + def iterator: Iterator[(A, B)] = elems.iterator def += (kv: (A, B)) = { elems = remove(kv._1, elems); elems = kv :: elems; siz += 1; this } def -= (key: A) = { elems = remove(key, elems); this } diff --git a/src/library/scala/collection/mutable/Map.scala b/src/library/scala/collection/mutable/Map.scala index 94e376cd67..eab5b426a8 100644 --- a/src/library/scala/collection/mutable/Map.scala +++ b/src/library/scala/collection/mutable/Map.scala @@ -26,7 +26,7 @@ trait Map[A, B] override def size = self.size override def update(key: A, value: B) = self.update(key, value) override def - (elem: A) = self - elem - override def elements = self.elements + override def iterator = self.iterator override def foreach[U](f: ((A, B)) => U) = self.foreach(f) override def empty[C] = self.empty[C] def get(key: A) = self.get(key) diff --git a/src/library/scala/collection/mutable/MutableList.scala b/src/library/scala/collection/mutable/MutableList.scala index 605d511f05..a2a283f2c4 100644 --- a/src/library/scala/collection/mutable/MutableList.scala +++ b/src/library/scala/collection/mutable/MutableList.scala @@ -92,8 +92,8 @@ class MutableList[A] extends LinearSequence[A] with LinearSequenceTemplate[A, Mu /** Returns an iterator over all elements of this list. */ - override def elements: Iterator[A] = - if (first0 eq null) Iterator.empty else first0.elements + override def iterator: Iterator[A] = + if (first0 eq null) Iterator.empty else first0.iterator override def last = last0.elem diff --git a/src/library/scala/collection/mutable/OpenHashMap.scala b/src/library/scala/collection/mutable/OpenHashMap.scala index 5a0810cfe4..8373b4fdde 100644 --- a/src/library/scala/collection/mutable/OpenHashMap.scala +++ b/src/library/scala/collection/mutable/OpenHashMap.scala @@ -165,7 +165,7 @@ class OpenHashMap[Key, Value](initialSize : Int) extends scala.collection.mutabl * An iterator over the elements of this map. Use of this iterator follows the same * contract for concurrent modification as the foreach method. */ - def elements = new Iterator[(Key, Value)]{ + def iterator = new Iterator[(Key, Value)]{ var index = 0; val initialModCount = modCount; @@ -184,6 +184,9 @@ class OpenHashMap[Key, Value](initialSize : Int) extends scala.collection.mutabl } } + /** @deprecated use `iterator` instead */ + @deprecated override def elements: Iterator[(Key, Value)] = iterator + override def clone : OpenHashMap[Key, Value] = { val it = new OpenHashMap[Key, Value] foreachUndeletedEntry(entry => it.put(entry.key, entry.hash, entry.value.get)); diff --git a/src/library/scala/collection/mutable/PriorityQueue.scala b/src/library/scala/collection/mutable/PriorityQueue.scala index d013497389..1665c38dac 100644 --- a/src/library/scala/collection/mutable/PriorityQueue.scala +++ b/src/library/scala/collection/mutable/PriorityQueue.scala @@ -88,7 +88,7 @@ class PriorityQueue[A <% Ordered[A]] extends ResizableArray[A] with CloneableCol * * @param iter an iterable object */ - def ++=(iter: Iterable[A]): Unit = this ++= iter.elements + def ++=(iter: Iterable[A]): Unit = this ++= iter.iterator /** Adds all elements provided by an iterator into the priority queue. * @@ -138,7 +138,7 @@ class PriorityQueue[A <% Ordered[A]] extends ResizableArray[A] with CloneableCol * * @return an iterator over all elements sorted in descending order. */ - override def elements: Iterator[A] = new Iterator[A] { + override def iterator: Iterator[A] = new Iterator[A] { val as: Array[AnyRef] = new Array[AnyRef](size0) Array.copy(array, 0, as, 0, size0) var i = size0 - 1 @@ -158,7 +158,7 @@ class PriorityQueue[A <% Ordered[A]] extends ResizableArray[A] with CloneableCol */ override def equals(obj: Any): Boolean = obj match { case that: PriorityQueue[_] => - (this.elements zip that.elements) forall { + (this.iterator zip that.iterator) forall { case (thiselem, thatelem) => thiselem == thatelem } case _ => diff --git a/src/library/scala/collection/mutable/PriorityQueueProxy.scala b/src/library/scala/collection/mutable/PriorityQueueProxy.scala index 7eab4df05e..de909fa470 100644 --- a/src/library/scala/collection/mutable/PriorityQueueProxy.scala +++ b/src/library/scala/collection/mutable/PriorityQueueProxy.scala @@ -31,7 +31,7 @@ abstract class PriorityQueueProxy[A <% Ordered[A]] extends PriorityQueue[A] * * @return the new iterator */ - override def elements: Iterator[A] = self.elements + override def iterator: Iterator[A] = self.iterator /** Returns the length of this priority queue. */ diff --git a/src/library/scala/collection/mutable/QueueProxy.scala b/src/library/scala/collection/mutable/QueueProxy.scala index cfe364108a..cd3ca80c5e 100644 --- a/src/library/scala/collection/mutable/QueueProxy.scala +++ b/src/library/scala/collection/mutable/QueueProxy.scala @@ -90,7 +90,7 @@ trait QueueProxy[A] extends Queue[A] with SeqProxy[A] { * * @return an iterator over all queue elements. */ - override def elements: Iterator[A] = self.elements + override def iteratoor: Iterator[A] = self.iterator /** This method clones the queue. * diff --git a/src/library/scala/collection/mutable/Set.scala b/src/library/scala/collection/mutable/Set.scala index 8118f8a58f..d17dee1753 100644 --- a/src/library/scala/collection/mutable/Set.scala +++ b/src/library/scala/collection/mutable/Set.scala @@ -17,7 +17,7 @@ import generic._ * have to provide functionality for the abstract methods in Set: * * def contains(elem: A): Boolean - * def elements: Iterator[A] + * def iterator: Iterator[A] * def += (elem: A): this.type * def -= (elem: A): this.type * diff --git a/src/library/scala/collection/mutable/Stack.scala b/src/library/scala/collection/mutable/Stack.scala index b63a07dbb1..b079a94f92 100644 --- a/src/library/scala/collection/mutable/Stack.scala +++ b/src/library/scala/collection/mutable/Stack.scala @@ -111,7 +111,7 @@ class Stack[A] private (var elems: List[A]) extends collection.Sequence[A] with * * @return an iterator over all stack elements. */ - override def elements: Iterator[A] = elems.elements + override def iterator: Iterator[A] = elems.iterator /** Creates a list of all stack elements in LIFO order. * diff --git a/src/library/scala/collection/mutable/StackProxy.scala b/src/library/scala/collection/mutable/StackProxy.scala index 1833af0f33..cb7f180849 100644 --- a/src/library/scala/collection/mutable/StackProxy.scala +++ b/src/library/scala/collection/mutable/StackProxy.scala @@ -94,7 +94,7 @@ trait StackProxy[A] extends Stack[A] with SeqProxy[A] { * * @return an iterator over all stack elements. */ - override def elements: Iterator[A] = self.elements + override def iterator: Iterator[A] = self.iterator /** Creates a list of all stack elements in FIFO order. * diff --git a/src/library/scala/collection/mutable/SynchronizedBuffer.scala b/src/library/scala/collection/mutable/SynchronizedBuffer.scala index 4209dff391..58c8d749bb 100644 --- a/src/library/scala/collection/mutable/SynchronizedBuffer.scala +++ b/src/library/scala/collection/mutable/SynchronizedBuffer.scala @@ -26,8 +26,8 @@ trait SynchronizedBuffer[A] extends Buffer[A] { super.length } - abstract override def elements: Iterator[A] = synchronized { - super.elements + abstract override def iterator: Iterator[A] = synchronized { + super.iterator } abstract override def apply(n: Int): A = synchronized { @@ -52,7 +52,7 @@ trait SynchronizedBuffer[A] extends Buffer[A] { } /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. @@ -62,7 +62,7 @@ trait SynchronizedBuffer[A] extends Buffer[A] { } /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. + * via its <code>iterator</code> method. * * @param iter the iterable object. */ @@ -79,7 +79,7 @@ trait SynchronizedBuffer[A] extends Buffer[A] { } /** Appends a number of elements provided by an iterable object - * via its <code>elements</code> method. + * via its <code>iterator</code> method. * * @param iter the iterable object. */ @@ -97,7 +97,7 @@ trait SynchronizedBuffer[A] extends Buffer[A] { } /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. @@ -115,7 +115,7 @@ trait SynchronizedBuffer[A] extends Buffer[A] { } /** Prepends a number of elements provided by an iterable object - * via its <code>elements</code> method. The identity of the + * via its <code>iterator</code> method. The identity of the * buffer is returned. * * @param iter the iterable object. diff --git a/src/library/scala/collection/mutable/SynchronizedMap.scala b/src/library/scala/collection/mutable/SynchronizedMap.scala index 4b30ce5d4b..61c9b50568 100644 --- a/src/library/scala/collection/mutable/SynchronizedMap.scala +++ b/src/library/scala/collection/mutable/SynchronizedMap.scala @@ -21,7 +21,7 @@ package scala.collection.mutable trait SynchronizedMap[A, B] extends Map[A, B] { abstract override def get(key: A): Option[B] = synchronized { super.get(key) } - abstract override def elements: Iterator[(A, B)] = synchronized { super.elements } + abstract override def iterator: Iterator[(A, B)] = synchronized { super.iterator } abstract override def += (kv: (A, B)): this.type = synchronized[this.type] { super.+=(kv) } abstract override def -= (key: A): this.type = synchronized[this.type] { super.-=(key) } @@ -33,11 +33,13 @@ trait SynchronizedMap[A, B] extends Map[A, B] { override def getOrElseUpdate(key: A, default: => B): B = synchronized { super.getOrElseUpdate(key, default) } override def transform(f: (A, B) => B): this.type = synchronized[this.type] { super.transform(f) } override def retain(p: (A, B) => Boolean): this.type = synchronized[this.type] { super.retain(p) } - override def valueSet = synchronized { super.valueSet } + override def values: collection.immutable.Set[B] = synchronized { super.values } + override def valuesIterator: Iterator[B] = synchronized { super.valuesIterator } override def clone() = synchronized { super.clone() } override def foreach[U](f: ((A, B)) => U) = synchronized { super.foreach(f) } override def apply(key: A): B = synchronized { super.apply(key) } - override def keys: Iterator[A] = synchronized { super.keys } + override def keys: collection.Set[A] = synchronized { super.keys } + override def keysIterator: Iterator[A] = synchronized { super.keysIterator } override def isEmpty: Boolean = synchronized { super.isEmpty } override def contains(key: A): Boolean = synchronized {super.contains(key) } override def isDefinedAt(key: A) = synchronized { super.isDefinedAt(key) } diff --git a/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala b/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala index f500b46aa0..65cb592f0b 100644 --- a/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala +++ b/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala @@ -77,7 +77,7 @@ class SynchronizedPriorityQueue[A <% Ordered[A]] extends PriorityQueue[A] { * * @return an iterator over all elements sorted in descending order. */ - override def elements: Iterator[A] = synchronized { super.elements } + override def iterator: Iterator[A] = synchronized { super.iterator } /** Checks if two queues are structurally identical. * diff --git a/src/library/scala/collection/mutable/SynchronizedStack.scala b/src/library/scala/collection/mutable/SynchronizedStack.scala index 4c0f63cd76..740449ffe7 100644 --- a/src/library/scala/collection/mutable/SynchronizedStack.scala +++ b/src/library/scala/collection/mutable/SynchronizedStack.scala @@ -84,7 +84,7 @@ class SynchronizedStack[A] extends Stack[A] { * * @return an iterator over all stack elements. */ - override def elements: Iterator[A] = synchronized { super.elements } + override def iterator: Iterator[A] = synchronized { super.iterator } /** Creates a list of all stack elements in FIFO order. * diff --git a/src/library/scala/collection/script/Message.scala b/src/library/scala/collection/script/Message.scala index 670a8a426a..c4bf81eebc 100644 --- a/src/library/scala/collection/script/Message.scala +++ b/src/library/scala/collection/script/Message.scala @@ -72,7 +72,7 @@ class Script[A] extends ArrayBuffer[Message[A]] with Message[A] { override def toString(): String = { var res = "Script(" - var it = elements + var it = this.iterator var i = 1 while (it.hasNext) { if (i > 1) diff --git a/src/library/scala/io/BytePickle.scala b/src/library/scala/io/BytePickle.scala index ad2be7b9b2..135d608eb9 100644 --- a/src/library/scala/io/BytePickle.scala +++ b/src/library/scala/io/BytePickle.scala @@ -69,8 +69,8 @@ object BytePickle { case Def() => Array.concat(s, (List[Byte](1)).toArray) }; def appU(s: Array[Byte]): (RefDef, Array[Byte]) = - if (s(0) == 0) (Ref(), s.subArray(1, s.length)) - else (Def(), s.subArray(1, s.length)); + if (s(0) == 0) (Ref(), s.slice(1, s.length)) + else (Def(), s.slice(1, s.length)); } val REF = 0 @@ -91,7 +91,7 @@ object BytePickle { } while ((b & 0x80) != 0); x } - (readNat, s.subArray(num, s.length)) + (readNat, s.slice(num, s.length)) } } @@ -260,7 +260,7 @@ object BytePickle { } while ((b & 0x80) != 0); x } - (readNat, new UnPicklerState(s.stream.subArray(num, s.stream.length), s.dict)) + (readNat, new UnPicklerState(s.stream.slice(num, s.stream.length), s.dict)) } } @@ -268,7 +268,7 @@ object BytePickle { def appP(b: Byte, s: PicklerState): PicklerState = new PicklerState(Array.concat(s.stream, (List[Byte](b)).toArray), s.dict); def appU(s: UnPicklerState): (Byte, UnPicklerState) = - (s.stream(0), new UnPicklerState(s.stream.subArray(1, s.stream.length), s.dict)); + (s.stream(0), new UnPicklerState(s.stream.slice(1, s.stream.length), s.dict)); } def string: SPU[String] = diff --git a/src/library/scala/io/Source.scala b/src/library/scala/io/Source.scala index 3b79202b41..03c2e4dc00 100644 --- a/src/library/scala/io/Source.scala +++ b/src/library/scala/io/Source.scala @@ -68,7 +68,7 @@ object Source { * @return ... */ def fromChars(chars: Array[Char]): Source = { - val it = chars.elements + val it = chars.iterator new Source { def reset() = fromChars(chars) val iter = it @@ -81,7 +81,7 @@ object Source { * @return ... */ def fromString(s: String): Source = { - val it = s.elements + val it = s.iterator new Source { def reset() = fromString(s) val iter = it diff --git a/src/library/scala/io/UTF8Codec.scala b/src/library/scala/io/UTF8Codec.scala index 6d5e569971..d07354b117 100644 --- a/src/library/scala/io/UTF8Codec.scala +++ b/src/library/scala/io/UTF8Codec.scala @@ -85,7 +85,7 @@ object UTF8Codec { def encode(s: String): Array[Byte] = { val dst = new Array[Byte](s.length() * 3) val len = encode(s, dst, 0) - dst.subArray(0, len) + dst.slice(0, len) } def decode(src: Array[Byte], from: Int, diff --git a/src/library/scala/runtime/BoxedArray.scala b/src/library/scala/runtime/BoxedArray.scala index 04bb00113c..91651a9cec 100644 --- a/src/library/scala/runtime/BoxedArray.scala +++ b/src/library/scala/runtime/BoxedArray.scala @@ -86,10 +86,10 @@ abstract class BoxedArray[A] extends Vector[A] with VectorTemplate[A, BoxedArray } val buf = new StringBuilder() buf.append(start) - val elems = elements - if (elems.hasNext) buf.append(_deepToString(elems.next)) - while (elems.hasNext) { - buf.append(sep); buf.append(_deepToString(elems.next)) + val iter = this.iterator + if (iter.hasNext) buf.append(_deepToString(iter.next)) + while (iter.hasNext) { + buf.append(sep); buf.append(_deepToString(iter.next)) } buf.append(end) buf.toString @@ -108,8 +108,8 @@ abstract class BoxedArray[A] extends Vector[A] with VectorTemplate[A, BoxedArray x1.equals(x2) } def _sameElements(a1: BoxedArray[_], a2: BoxedArray[_]): Boolean = { - val it1 = a1.elements - val it2 = a2.elements + val it1 = a1.iterator + val it2 = a2.iterator var res = true while (res && it1.hasNext && it2.hasNext) res = _deepEquals(it1.next, it2.next) diff --git a/src/library/scala/runtime/RichString.scala b/src/library/scala/runtime/RichString.scala index 470cefabfe..6fc8f1e9a6 100644 --- a/src/library/scala/runtime/RichString.scala +++ b/src/library/scala/runtime/RichString.scala @@ -97,7 +97,7 @@ class RichString(val self: String) extends Proxy with Vector[Char] with VectorTe * <li>FF - form feed (0x0C hex)</li> * </ul> */ - def linesWithSeparators = new Iterator[String] { + def linesWithSeparators: Iterator[String] = new Iterator[String] { private val len = self.length private var index = 0 def hasNext: Boolean = index < len @@ -117,6 +117,13 @@ class RichString(val self: String) extends Proxy with Vector[Char] with VectorTe def lines: Iterator[String] = linesWithSeparators map (line => new RichString(line).stripLineEnd) + /** Return all lines in this string in an iterator, excluding trailing line + * end characters, i.e. apply <code>.stripLineEnd</code> to all lines + * returned by <code>linesWithSeparators</code>. + */ + def linesIterator: Iterator[String] = + linesWithSeparators map (line => new RichString(line).stripLineEnd) + /** Returns this string with first character converted to upper case */ def capitalize: String = if (self == null) null diff --git a/src/library/scala/runtime/ScalaRunTime.scala b/src/library/scala/runtime/ScalaRunTime.scala index 78298a16e6..86aa61aec2 100644 --- a/src/library/scala/runtime/ScalaRunTime.scala +++ b/src/library/scala/runtime/ScalaRunTime.scala @@ -21,7 +21,7 @@ object ScalaRunTime { def forceBoxedArray[A <: Any](xs: Seq[A]): Array[A] = { val array = new Array[A](xs.length) var i = 0 - for (x <- xs.elements) { array(i) = x; i += 1 } + for (x <- xs.iterator) { array(i) = x; i += 1 } array } diff --git a/src/library/scala/testing/SUnit.scala b/src/library/scala/testing/SUnit.scala index 22e5a8dfdd..1a333397a7 100644 --- a/src/library/scala/testing/SUnit.scala +++ b/src/library/scala/testing/SUnit.scala @@ -128,7 +128,7 @@ object SUnit { buf.length def failures() = - buf.elements map { x => new TestFailure(x) } + buf.iterator map { x => new TestFailure(x) } } /** The class <code>TestSuite</code> runs a composite of test cases. diff --git a/src/library/scala/util/automata/BaseBerrySethi.scala b/src/library/scala/util/automata/BaseBerrySethi.scala index d35e84fd83..6960407ebf 100644 --- a/src/library/scala/util/automata/BaseBerrySethi.scala +++ b/src/library/scala/util/automata/BaseBerrySethi.scala @@ -45,7 +45,7 @@ abstract class BaseBerrySethi { protected def compFirst(r: RegExp): immutable.Set[Int] = r match { case x:Alt => var tmp = emptySet - val it = x.rs.elements // union + val it = x.rs.iterator // union while (it.hasNext) { tmp = tmp ++ compFirst(it.next) } tmp case Eps => @@ -55,7 +55,7 @@ abstract class BaseBerrySethi { compFirst(x.r) case x:Sequ => var tmp = emptySet; - val it = x.rs.elements; // union + val it = x.rs.iterator; // union while (it.hasNext) { val z = it.next tmp = tmp ++ compFirst(z) @@ -73,7 +73,7 @@ abstract class BaseBerrySethi { protected def compLast(r: RegExp): immutable.Set[Int] = r match { case x:Alt => var tmp = emptySet - val it = x.rs.elements // union + val it = x.rs.iterator // union while (it.hasNext) { tmp = tmp ++ compFirst(it.next) } tmp case Eps => @@ -83,7 +83,7 @@ abstract class BaseBerrySethi { compLast(x.r) case x:Sequ => var tmp = emptySet - val it = x.rs.elements.toList.reverse.elements // union + val it = x.rs.iterator.toList.reverse.iterator // union while (it.hasNext) { val z = it.next tmp = tmp ++ compLast(z) @@ -109,7 +109,7 @@ abstract class BaseBerrySethi { var fol = emptySet if (r.length > 0) {//non-empty expr - val it = r.elements.toList.reverse.elements + val it = r.iterator.toList.reverse.iterator fol = fol + pos // don't modify pos ! while (it.hasNext) { @@ -137,7 +137,7 @@ abstract class BaseBerrySethi { case x:Alt => var first = emptySet - val it = x.rs.elements.toList.reverse.elements + val it = x.rs.iterator.toList.reverse.iterator while (it.hasNext) first = first ++ compFollow1(fol, it.next); first @@ -157,7 +157,7 @@ abstract class BaseBerrySethi { case x:Sequ => var first = emptySet - val it = x.rs.elements.toList.reverse.elements + val it = x.rs.iterator.toList.reverse.iterator while (it.hasNext) { val p = it.next first = compFollow1(fol, p) @@ -181,10 +181,10 @@ abstract class BaseBerrySethi { protected def traverse(r: RegExp): Unit = r match { // (is tree automaton stuff, more than Berry-Sethi) case x:Alt => - val it = x.rs.elements + val it = x.rs.iterator while (it.hasNext) traverse(it.next) case x:Sequ => - val it = x.rs.elements + val it = x.rs.iterator while (it.hasNext) traverse(it.next) case x:Meta => traverse(x.r) diff --git a/src/library/scala/util/automata/WordBerrySethi.scala b/src/library/scala/util/automata/WordBerrySethi.scala index 873f85cf4f..02632ac327 100644 --- a/src/library/scala/util/automata/WordBerrySethi.scala +++ b/src/library/scala/util/automata/WordBerrySethi.scala @@ -140,7 +140,7 @@ abstract class WordBerrySethi extends BaseBerrySethi { // determine "Sethi-length" of the regexp //activeBinders = new Vector() - var it = subexpr.elements + var it = subexpr.iterator while (it.hasNext) traverse(it.next) @@ -167,7 +167,7 @@ abstract class WordBerrySethi extends BaseBerrySethi { var j = 0; while (j < pos) { //Console.println("WBS.collectTrans, j = "+j) val fol = this.follow(j) - val it = fol.elements + val it = fol.iterator while (it.hasNext) { val k = it.next if (pos == k) @@ -218,7 +218,7 @@ abstract class WordBerrySethi extends BaseBerrySethi { } val initialsArr = new Array[Int](initials.size) - val it = initials.elements + val it = initials.iterator { var k = 0; while (k < initials.size) { diff --git a/src/library/scala/util/parsing/ast/Binders.scala b/src/library/scala/util/parsing/ast/Binders.scala index 75ce3b28d0..addcc1d9fd 100644 --- a/src/library/scala/util/parsing/ast/Binders.scala +++ b/src/library/scala/util/parsing/ast/Binders.scala @@ -102,17 +102,17 @@ trait Binders extends AbstractSyntax with Mappable { * For a typical let-binding, this is just the variable name. For an argument list to a method body, * there is one binder per formal argument. */ - def elements = substitution.keys + def iterator = substitution.keysIterator /** Return the `i'th binder in this scope.*/ - def apply(i: Int): binderType = elements.toList(i) + def apply(i: Int): binderType = this.iterator.toList(i) /** Returns true if this container has a binder equal (==) to `b' */ def binds(b: binderType): Boolean = substitution.contains(b) def indexFor(b: binderType): Option[Int] = { - val iter = elements.counted + val iter = this.iterator.counted for (that <- iter) { if (that.name == b.name) // TODO: why do name equals and structural equals differ? return Some(iter.count) @@ -164,10 +164,10 @@ trait Binders extends AbstractSyntax with Mappable { */ def getElementFor(b: binderType): Element = substitution(b) - override def toString: String = elements.toList.mkString("[",", ","]")+"!"+id // TODO show substitution? + override def toString: String = this.iterator.toList.mkString("[",", ","]")+"!"+id // TODO show substitution? /** Returns a list of strings that represent the binder elements, each tagged with this scope's id.*/ - def bindersToString: List[String] = (for(val b <- elements) yield b+"!"+id).toList + def bindersToString: List[String] = (for(b <- this.iterator) yield b+"!"+id).toList /** Return a new inheriting scope that won't check whether binding is respected until the scope is left (so as to support forward references) **/ def allowForwardRef: Scope[binderType] = this // TODO @@ -276,7 +276,7 @@ trait Binders extends AbstractSyntax with Mappable { implicit def ScopeIsMappable[bt <: NameElement <% Mappable[bt]](scope: Scope[bt]): Mappable[Scope[bt]] = new Mappable[Scope[bt]] { def gmap(f: Mapper): Scope[bt] = { val newScope = new Scope[bt]() - for(val b <- scope) newScope.addBinder(f(b)) + for(b <- scope) newScope.addBinder(f(b)) newScope } } diff --git a/src/library/scala/util/parsing/combinator/PackratParsers.scala b/src/library/scala/util/parsing/combinator/PackratParsers.scala index f99c5e6ae5..da09eff597 100644 --- a/src/library/scala/util/parsing/combinator/PackratParsers.scala +++ b/src/library/scala/util/parsing/combinator/PackratParsers.scala @@ -184,7 +184,7 @@ trait PackratParsers extends Parsers { if(evalSet contains p){ //something in cache, and p is in the evalSet //remove the rule from the evalSet of the Head - h.evalSet = h.evalSet.remove(_==p) + h.evalSet = h.evalSet.filterNot(_==p) val tempRes = p(in) //we know that cached has an entry here val tempEntry: MemoEntry[_] = cached.get // match {case Some(x: MemoEntry[_]) => x} diff --git a/src/library/scala/util/parsing/combinatorold/syntactical/BindingParsers.scala b/src/library/scala/util/parsing/combinatorold/syntactical/BindingParsers.scala index 6596312ece..b2328bba0e 100644 --- a/src/library/scala/util/parsing/combinatorold/syntactical/BindingParsers.scala +++ b/src/library/scala/util/parsing/combinatorold/syntactical/BindingParsers.scala @@ -132,7 +132,7 @@ trait BindingParsers extends Parsers with Binders { val oldEnv = binderEnv // save old environment // bring binders in the scope in scope - for(val b <- scope) binderEnv = binderEnv.extend(b, scope) + for(b <- scope) binderEnv = binderEnv.extend(b, scope) // return the result of running block (in which these binders are in scope) // before returning, the binderEnv is restored to its old value diff --git a/src/library/scala/xml/Elem.scala b/src/library/scala/xml/Elem.scala index f41bb4e749..85bddbef16 100644 --- a/src/library/scala/xml/Elem.scala +++ b/src/library/scala/xml/Elem.scala @@ -80,7 +80,7 @@ object Elem { */ override def text = { val sb = new StringBuilder() - val it = child.elements + val it = child.iterator while (it.hasNext) sb.append(it.next.text) sb.toString() diff --git a/src/library/scala/xml/MetaData.scala b/src/library/scala/xml/MetaData.scala index d947e40ee3..aafedf7702 100644 --- a/src/library/scala/xml/MetaData.scala +++ b/src/library/scala/xml/MetaData.scala @@ -164,7 +164,7 @@ abstract class MetaData extends Iterable[MetaData] { that match { case m: MetaData => var res = (this.length == m.length) && (this.hashCode() == m.hashCode()) - val it = this.elements + val it = this.iterator while (res && it.hasNext) { res = it.next.containedIn1(m) } res case _ => @@ -172,7 +172,7 @@ abstract class MetaData extends Iterable[MetaData] { } /** returns an iterator on attributes */ - def elements: Iterator[MetaData] = new Iterator[MetaData] { + def iterator: Iterator[MetaData] = new Iterator[MetaData] { var x: MetaData = MetaData.this def hasNext = Null != x def next = { diff --git a/src/library/scala/xml/NodeBuffer.scala b/src/library/scala/xml/NodeBuffer.scala index cde6870ead..d83876e255 100644 --- a/src/library/scala/xml/NodeBuffer.scala +++ b/src/library/scala/xml/NodeBuffer.scala @@ -47,13 +47,13 @@ class NodeBuffer extends scala.collection.mutable.ArrayBuffer[Node] { this &+ it.next case n:Node => - super.+(n) + super.+=(n) case ns:Iterable[_] => - this &+ ns.elements + this &+ ns.iterator case d => - super.+(new Atom(d)) + super.+=(new Atom(d)) } this } diff --git a/src/library/scala/xml/NodeSeq.scala b/src/library/scala/xml/NodeSeq.scala index c17b99b2e6..13e0566893 100644 --- a/src/library/scala/xml/NodeSeq.scala +++ b/src/library/scala/xml/NodeSeq.scala @@ -45,7 +45,7 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No def theSeq: Seq[Node] def length = theSeq.length - override def elements = theSeq.elements + override def iterator = theSeq.iterator def apply(i: Int): Node = theSeq.apply(i) def apply(f: Node => Boolean): NodeSeq = filter(f) @@ -76,10 +76,10 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No def \(that: String): NodeSeq = that match { case "_" => var zs: List[Node] = Nil - val it = this.elements + val it = this.iterator while (it.hasNext) { val x = it.next - val jt = x.child.elements + val jt = x.child.iterator while (jt.hasNext) { val y = jt.next if (y.typeTag$ != -1) @@ -114,10 +114,10 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No case _ => var zs: List[Node] = Nil - val it = this.elements + val it = this.iterator while (it.hasNext) { val x = it.next - val jt = x.child.elements + val jt = x.child.iterator while (jt.hasNext) { val y = jt.next if (y.label == that) @@ -145,10 +145,10 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No def \\ (that: String): NodeSeq = that match { case "_" => var zs: List[Node] = Nil - val it = this.elements + val it = this.iterator while (it.hasNext) { val x = it.next - val jt = x.descendant_or_self.elements + val jt = x.descendant_or_self.iterator while (jt.hasNext) { val y = jt.next if (y.typeTag$ != -1) @@ -159,14 +159,14 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No case _ if that.charAt(0) == '@' => var zs: List[Node] = Nil - val it = this.elements + val it = this.iterator while (it.hasNext) { val x = it.next - val jt = x.descendant_or_self.elements + val jt = x.descendant_or_self.iterator while (jt.hasNext) { val y = jt.next if (y.typeTag$ != -1) { - val kt = (y \ that).elements + val kt = (y \ that).iterator while (kt.hasNext) { zs = (kt.next)::zs } @@ -177,10 +177,10 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No case _ => var zs: List[Node] = Nil - val it = this.elements + val it = this.iterator while (it.hasNext) { val x = it.next - val jt = x.descendant_or_self.elements + val jt = x.descendant_or_self.iterator while (jt.hasNext) { val y = jt.next if (y.typeTag$ != -1 && y.label == that) @@ -190,7 +190,7 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No zs.reverse } - override def toString(): String = theSeq.elements.foldLeft ("") { + override def toString(): String = theSeq.iterator.foldLeft ("") { (s: String, x: Node) => s + x.toString() } /* @@ -209,7 +209,7 @@ abstract class NodeSeq extends immutable.Sequence[Node] with SequenceTemplate[No def text: String = { val sb = new StringBuilder() - val it = elements + val it = this.iterator while (it.hasNext) { sb.append(it.next.text) } diff --git a/src/library/scala/xml/Null.scala b/src/library/scala/xml/Null.scala index b269672b8c..5885201acd 100644 --- a/src/library/scala/xml/Null.scala +++ b/src/library/scala/xml/Null.scala @@ -21,7 +21,7 @@ case object Null extends MetaData { /** returns its argument */ def copy(next: MetaData) = next - override def elements = Iterator.empty + override def iterator = Iterator.empty override def filter(f: MetaData => Boolean): MetaData = this diff --git a/src/library/scala/xml/Parsing.scala b/src/library/scala/xml/Parsing.scala index 076a6e7074..7d5545233f 100644 --- a/src/library/scala/xml/Parsing.scala +++ b/src/library/scala/xml/Parsing.scala @@ -30,7 +30,7 @@ object Parsing { /** <pre>(#x20 | #x9 | #xD | #xA)+</pre> */ final def isSpace(cs: Seq[Char]): Boolean = { - val it = cs.elements + val it = cs.iterator it.hasNext && it.forall { isSpace } } @@ -75,7 +75,7 @@ object Parsing { def isName(s: String): Boolean = if (s.length() > 0) { val z: Seq[Char] = s - val y = z.elements + val y = z.iterator if (isNameStart(y.next)) { while (y.hasNext && isNameChar(y.next)) {} !y.hasNext @@ -97,7 +97,7 @@ object Parsing { def checkPubID(s: String): Boolean = if (s.length() > 0) { val z:Seq[Char] = s - val y = z.elements + val y = z.iterator while (y.hasNext && isPubIDChar(y.next)) {} !y.hasNext } else true diff --git a/src/library/scala/xml/PrettyPrinter.scala b/src/library/scala/xml/PrettyPrinter.scala index 11b219d99d..e97a2e0f59 100644 --- a/src/library/scala/xml/PrettyPrinter.scala +++ b/src/library/scala/xml/PrettyPrinter.scala @@ -91,7 +91,7 @@ class PrettyPrinter( width:Int, step:Int ) { items = Box(ind, s) :: items cur += s.length } else try { - for (b <- cut(s, ind).elements) // break it up + for (b <- cut(s, ind).iterator) // break it up items = b :: items } catch { case _:BrokenException => makePara(ind, s) // give up, para @@ -168,7 +168,7 @@ class PrettyPrinter( width:Int, step:Int ) { case _:Atom[_] | _:Comment | _:EntityRef | _:ProcInstr => makeBox( ind, node.toString().trim() ) case g @ Group(xs) => - traverse(xs.elements, pscope, ind) + traverse(xs.iterator, pscope, ind) case _ => val test = { val sb = new StringBuilder() @@ -184,7 +184,7 @@ class PrettyPrinter( width:Int, step:Int ) { if (stg.length < width - cur) { // start tag fits makeBox(ind, stg) makeBreak() - traverse(node.child.elements, node.scope, ind + step) + traverse(node.child.iterator, node.scope, ind + step) makeBox(ind, etg) } else if (len2 < width - cur) { // <start label + attrs + tag + content + end tag @@ -192,7 +192,7 @@ class PrettyPrinter( width:Int, step:Int ) { makeBreak() // todo: break the rest in pieces /*{ //@todo val sq:Seq[String] = stg.split(" "); - val it = sq.elements; + val it = sq.iterator; it.next; for (c <- it) { makeBox(ind+len2-2, c) @@ -201,7 +201,7 @@ class PrettyPrinter( width:Int, step:Int ) { }*/ makeBox(ind, stg.substring(len2, stg.length)) makeBreak() - traverse(node.child.elements, node.scope, ind + step) + traverse(node.child.iterator, node.scope, ind + step) makeBox(cur, etg) makeBreak() } else { // give up @@ -300,7 +300,7 @@ class PrettyPrinter( width:Int, step:Int ) { * @param sb the string buffer to which to append to */ def formatNodes(nodes: Seq[Node], pscope: NamespaceBinding, sb: StringBuilder): Unit = - for (n <- nodes.elements) { + for (n <- nodes.iterator) { sb.append(format(n, pscope)) } diff --git a/src/library/scala/xml/Utility.scala b/src/library/scala/xml/Utility.scala index f7f7171580..635585f79c 100644 --- a/src/library/scala/xml/Utility.scala +++ b/src/library/scala/xml/Utility.scala @@ -102,7 +102,7 @@ object Utility extends AnyRef with parsing.TokenTests * @return ... */ final def escape(text: String, s: StringBuilder): StringBuilder = { - for (c <- text.elements) c match { + for (c <- text.iterator) c match { case '<' => s.append("<") case '>' => s.append(">") case '&' => s.append("&") @@ -141,7 +141,7 @@ object Utility extends AnyRef with parsing.TokenTests */ def collectNamespaces(nodes: Seq[Node]): Set[String] = { var m = new HashSet[String]() - val it = nodes.elements + val it = nodes.iterator while (it.hasNext) collectNamespaces(it.next, m); m @@ -247,7 +247,7 @@ object Utility extends AnyRef with parsing.TokenTests if (children.isEmpty) return else if (children forall isAtomAndNotText) { // add space - val it = children.elements + val it = children.iterator val f = it.next toXML(f, pscope, sb) while (it.hasNext) { @@ -285,7 +285,7 @@ object Utility extends AnyRef with parsing.TokenTests + scpeHash * 31 + { var c = 0 - val i = children.elements + val i = children.iterator while(i.hasNext) c = c * 41 + i.next.hashCode c } @@ -379,7 +379,7 @@ object Utility extends AnyRef with parsing.TokenTests val sb = new StringBuilder var rfb: StringBuilder = null val nb = new NodeBuffer() - val it = zs.elements + val it = zs.iterator while (it.hasNext) { var c = it.next c match { diff --git a/src/library/scala/xml/dtd/ContentModel.scala b/src/library/scala/xml/dtd/ContentModel.scala index a1e2ea0aa5..24d7840ec3 100644 --- a/src/library/scala/xml/dtd/ContentModel.scala +++ b/src/library/scala/xml/dtd/ContentModel.scala @@ -35,7 +35,7 @@ object ContentModel extends WordExp { def getLabels(r: RegExp): scala.collection.Set[String] = { val s = new scala.collection.mutable.HashSet[String]() def traverse1(xs: Seq[RegExp]) { - val it = xs.elements + val it = xs.iterator while (it.hasNext) traverse(it.next) } def traverse(r: RegExp) { @@ -54,7 +54,7 @@ object ContentModel extends WordExp { /* precond: rs.length >= 1 */ private def buildString(rs: Seq[RegExp], sb: StringBuilder, sep: Char) { - val it = rs.elements + val it = rs.iterator val fst = it.next buildString(fst, sb) for (z <- it) { @@ -136,7 +136,7 @@ case class MIXED(r: ContentModel.RegExp) extends DFAContentModel { def cond(n:Node) = !n.isInstanceOf[Text] && !n.isInstanceOf[SpecialNode]; Console.println("ns = "+ns); - val jt = ns.elements; + val jt = ns.iterator; def hasNext = jt.hasNext; def next = { var r: Node = jt.next; @@ -162,7 +162,7 @@ Console.println("ns = "+ns); case class ELEMENTS(r:ContentModel.RegExp) extends DFAContentModel { /* def getIterator(ns:NodeSeq) = new Iterator[String] { - val jt = ns.elements.buffered; + val jt = ns.iterator.buffered; def hasNext = jt.hasNext; def next = { var r: Node = jt.next; diff --git a/src/library/scala/xml/dtd/ElementValidator.scala b/src/library/scala/xml/dtd/ElementValidator.scala index de969cab64..53fe483bc2 100644 --- a/src/library/scala/xml/dtd/ElementValidator.scala +++ b/src/library/scala/xml/dtd/ElementValidator.scala @@ -58,8 +58,8 @@ class ElementValidator() extends Function1[Node,Boolean] { case _ => x.namespace eq null }} - . map { x => ElemName(x.label) } - . elements; + .map { x => ElemName(x.label) } + .iterator; /** check attributes, return true if md corresponds to attribute declarations in adecls. */ @@ -71,7 +71,7 @@ class ElementValidator() extends Function1[Node,Boolean] { var ok = new scala.collection.mutable.BitSet(adecls.length); def find(Key:String): AttrDecl = { var attr: AttrDecl = null; - val jt = adecls.elements; while(j < adecls.length) { + val jt = adecls.iterator; while(j < adecls.length) { jt.next match { case a @ AttrDecl(Key, _, _) => attr = a; ok += j; j = adecls.length; case _ => j = j + 1; @@ -79,7 +79,7 @@ class ElementValidator() extends Function1[Node,Boolean] { } attr } - val it = md.elements; while(it.hasNext) { + val it = md.iterator; while(it.hasNext) { val attr = it.next j = 0 find(attr.key) match { @@ -99,7 +99,7 @@ class ElementValidator() extends Function1[Node,Boolean] { //val missing = ok.toSet(false); FIXME: it doesn't seem to be used anywhere j = 0 - var kt = adecls.elements + var kt = adecls.iterator while (kt.hasNext) { kt.next match { case AttrDecl(key, tpe, REQUIRED) if !ok(j) => @@ -129,7 +129,7 @@ class ElementValidator() extends Function1[Node,Boolean] { val j = exc.length def find(Key: String): Boolean = { var res = false - val jt = branches.elements + val jt = branches.iterator while (jt.hasNext && !res) jt.next match { // !!! check for match translation problem case ContentModel.Letter(ElemName(Key)) => res = true; diff --git a/src/library/scala/xml/dtd/Scanner.scala b/src/library/scala/xml/dtd/Scanner.scala index 0bb8d99b74..49f36aabf9 100644 --- a/src/library/scala/xml/dtd/Scanner.scala +++ b/src/library/scala/xml/dtd/Scanner.scala @@ -28,7 +28,7 @@ class Scanner extends Tokens with parsing.TokenTests { /** initializes the scanner on input s */ final def initScanner(s: String) { value = "" - it = (s).elements + it = (s).iterator token = 1+END next nextToken @@ -50,7 +50,7 @@ class Scanner extends Tokens with parsing.TokenTests { } final def accS(ds: Seq[Char]) { - val jt = ds.elements + val jt = ds.iterator while (jt.hasNext) { acc(jt.next) } } diff --git a/src/library/scala/xml/dtd/ValidationException.scala b/src/library/scala/xml/dtd/ValidationException.scala index 4425167a03..a05233a031 100644 --- a/src/library/scala/xml/dtd/ValidationException.scala +++ b/src/library/scala/xml/dtd/ValidationException.scala @@ -34,7 +34,7 @@ object MakeValidationException { def fromMissingAttribute(allKeys: scala.collection.Set[String]) = { val sb = new StringBuilder("missing value for REQUIRED attribute") if (allKeys.size > 1) sb.append('s'); - val it = allKeys.elements + val it = allKeys.iterator while (it.hasNext) { sb.append('\'').append(it.next).append('\'') } diff --git a/src/library/scala/xml/factory/NodeFactory.scala b/src/library/scala/xml/factory/NodeFactory.scala index 9a00548c2c..4d5743548d 100644 --- a/src/library/scala/xml/factory/NodeFactory.scala +++ b/src/library/scala/xml/factory/NodeFactory.scala @@ -31,8 +31,8 @@ trait NodeFactory[A <: Node] { /** faster equality, because */ def eqElements(ch1:Seq[Node], ch2:Seq[Node]): Boolean = { (ch1.length == ch2.length) && { - val it1 = ch1.elements; - val it2 = ch2.elements; + val it1 = ch1.iterator; + val it2 = ch2.iterator; var res = true; while(res && it1.hasNext) { res = it1.next.eq(it2.next); @@ -53,7 +53,7 @@ trait NodeFactory[A <: Node] { val hash = Utility.hashCode( pre, name, attrSeq.hashCode(), scpe.hashCode(), children ) ; cache.get( hash ) match { case Some(list) => // find structurally equal - val it = list.elements; + val it = list.iterator; val lookup = it.find { x => nodeEquals(x, pre, name, attrSeq, scpe, children) }; lookup match { case Some(x) => diff --git a/src/library/scala/xml/parsing/FactoryAdapter.scala b/src/library/scala/xml/parsing/FactoryAdapter.scala index d997a23676..4c09988151 100644 --- a/src/library/scala/xml/parsing/FactoryAdapter.scala +++ b/src/library/scala/xml/parsing/FactoryAdapter.scala @@ -93,7 +93,7 @@ abstract class FactoryAdapter extends DefaultHandler() { if (!capture) return if (!normalizeWhitespace) { // compliant: report every character - return buffer.append(ch, offset, length) + return buffer.appendAll(ch, offset, length) } // normalizing whitespace is not compliant, but useful diff --git a/src/library/scala/xml/parsing/MarkupParser.scala b/src/library/scala/xml/parsing/MarkupParser.scala index 1d41ee4a1a..369c0010e7 100644 --- a/src/library/scala/xml/parsing/MarkupParser.scala +++ b/src/library/scala/xml/parsing/MarkupParser.scala @@ -269,7 +269,7 @@ trait MarkupParser extends AnyRef with TokenTests { self: MarkupParser with Mar } def xToken(that: Seq[Char]): Unit = { - val it = that.elements; + val it = that.iterator; while (it.hasNext) xToken(it.next); } @@ -1173,7 +1173,7 @@ trait MarkupParser extends AnyRef with TokenTests { self: MarkupParser with Mar */ def normalizeAttributeValue(attval: String): String = { val s: Seq[Char] = attval - val it = s.elements + val it = s.iterator while (it.hasNext) { it.next match { case ' '|'\t'|'\n'|'\r' => diff --git a/src/library/scala/xml/parsing/TokenTests.scala b/src/library/scala/xml/parsing/TokenTests.scala index 1e7f920f0c..2fd6e39ec7 100644 --- a/src/library/scala/xml/parsing/TokenTests.scala +++ b/src/library/scala/xml/parsing/TokenTests.scala @@ -25,7 +25,7 @@ trait TokenTests { /** (#x20 | #x9 | #xD | #xA)+ */ final def isSpace(cs: Seq[Char]): Boolean = { - val it = cs.elements; + val it = cs.iterator; it.hasNext && it.forall { isSpace }; } @@ -72,7 +72,7 @@ trait TokenTests { */ def isName(s: String): Boolean = { if( s.length() > 0 ) { - val y = s.elements; + val y = s.iterator; if (isNameStart(y.next)) { while (y.hasNext && isNameChar(y.next)) {}; !y.hasNext @@ -105,7 +105,7 @@ trait TokenTests { * @param ianaEncoding The IANA encoding name. */ def isValidIANAEncoding(ianaEncoding: Seq[Char]): Boolean = { - val it = ianaEncoding.elements; + val it = ianaEncoding.iterator; if (!it.hasNext) return false; @@ -131,7 +131,7 @@ trait TokenTests { def checkPubID(s: String): Boolean = { //Console.println("checkPubID of \""+s+"\""); if (s.length() > 0) { - val y = s.elements; + val y = s.iterator; var c = ' '; while (y.hasNext && isPubIDChar(c)) { //Console.println(c); diff --git a/src/library/scala/xml/persistent/CachedFileStorage.scala b/src/library/scala/xml/persistent/CachedFileStorage.scala index 31f02597b8..19d232deee 100644 --- a/src/library/scala/xml/persistent/CachedFileStorage.scala +++ b/src/library/scala/xml/persistent/CachedFileStorage.scala @@ -78,7 +78,7 @@ extends java.lang.Thread with scala.util.logging.Logged { val res = ConstructingParser.fromSource(src,false).document.docElem(0) switch log("[load done]") - res.child.elements + res.child.iterator } /** saves the XML to file */ diff --git a/src/library/scala/xml/persistent/IndexedStorage.scala b/src/library/scala/xml/persistent/IndexedStorage.scala index d6720eac1d..979a048b63 100644 --- a/src/library/scala/xml/persistent/IndexedStorage.scala +++ b/src/library/scala/xml/persistent/IndexedStorage.scala @@ -40,7 +40,7 @@ extends CachedFileStorage(file) { } def nodes: Iterator[Node] = synchronized { - theMap.values + theMap.valuesIterator } def lookup(n: A): Option[Node] = theMap.get(n) diff --git a/src/library/scala/xml/persistent/SetStorage.scala b/src/library/scala/xml/persistent/SetStorage.scala index c5af1eff5e..90c59f80c3 100644 --- a/src/library/scala/xml/persistent/SetStorage.scala +++ b/src/library/scala/xml/persistent/SetStorage.scala @@ -27,7 +27,7 @@ class SetStorage(file: File) extends CachedFileStorage(file) { { val it = super.initialNodes dirty = it.hasNext - for(val x <- it) { + for(x <- it) { theSet += x; } } @@ -38,6 +38,6 @@ class SetStorage(file: File) extends CachedFileStorage(file) { def -= (e: Node): Unit = synchronized { this.dirty = true; theSet -= e } - def nodes = synchronized { theSet.elements } + def nodes = synchronized { theSet.iterator } } diff --git a/src/library/scala/xml/transform/BasicTransformer.scala b/src/library/scala/xml/transform/BasicTransformer.scala index 926cb624b7..d75b339e82 100644 --- a/src/library/scala/xml/transform/BasicTransformer.scala +++ b/src/library/scala/xml/transform/BasicTransformer.scala @@ -29,7 +29,7 @@ abstract class BasicTransformer extends Function1[Node,Node] { */ protected def buffer(pos: Int, ns: Seq[Node]): NodeBuffer = { val nb = new NodeBuffer() - var jt = ns.elements + var jt = ns.iterator var j = 0; while (j < pos-1) { nb.append(jt.next) j += 1 @@ -45,7 +45,7 @@ abstract class BasicTransformer extends Function1[Node,Node] { protected def freeze(nb: NodeBuffer): Seq[Node] = { val arr = new Array[Node](nb.length) var i = 0 - val it = nb.elements; while (it.hasNext) { + val it = nb.iterator; while (it.hasNext) { arr(i) = it.next i += 1 } @@ -62,7 +62,7 @@ abstract class BasicTransformer extends Function1[Node,Node] { * @return ... */ protected def unchanged(n: Node, ns: Seq[Node]) = - single(ns) && (ns.elements.next.eq(n)) + single(ns) && (ns.iterator.next.eq(n)) /** Call transform(Node) for each node in ns, append results * to NodeBuffer. @@ -78,7 +78,7 @@ abstract class BasicTransformer extends Function1[Node,Node] { */ def transform(ns: Seq[Node]): Seq[Node] = { var i = 0 - val it = ns.elements + val it = ns.iterator try { while (it.hasNext) { val n = it.next @@ -114,7 +114,7 @@ abstract class BasicTransformer extends Function1[Node,Node] { val seq = transform(n) if (!single(seq)) throw new UnsupportedOperationException("transform must return single node for root"); - else seq.elements.next + else seq.iterator.next } } diff --git a/src/library/scala/xml/transform/RuleTransformer.scala b/src/library/scala/xml/transform/RuleTransformer.scala index 32a21f7e74..682d7f2f2b 100644 --- a/src/library/scala/xml/transform/RuleTransformer.scala +++ b/src/library/scala/xml/transform/RuleTransformer.scala @@ -14,7 +14,7 @@ package scala.xml.transform class RuleTransformer(rules: RewriteRule*) extends BasicTransformer { override def transform(n: Node): Seq[Node] = { var m: Seq[Node] = super.transform(n) - val it = rules.elements; while (it.hasNext) { + val it = rules.iterator; while (it.hasNext) { val rule = it.next val m2 = rule.transform(m) //if(!m2.eq(m)) Console.println("applied rule \""+rule.name+"\""); diff --git a/src/manual/scala/tools/docutil/ManMaker.scala b/src/manual/scala/tools/docutil/ManMaker.scala index 2ef87fb7ec..b947e3dce4 100644 --- a/src/manual/scala/tools/docutil/ManMaker.scala +++ b/src/manual/scala/tools/docutil/ManMaker.scala @@ -17,7 +17,7 @@ class ManMaker extends Task { def setCommand(input: String) { - command = List.fromArray(input.split(",")).flatMap { s => + command = input.split(",").toList.flatMap { s => val st = s.trim() if (st != "") List(st) else Nil } diff --git a/src/msil/ch/epfl/lamp/compiler/msil/emit/ILPrinterVisitor.scala b/src/msil/ch/epfl/lamp/compiler/msil/emit/ILPrinterVisitor.scala index e6b7cf4bbe..ed4225adfb 100644 --- a/src/msil/ch/epfl/lamp/compiler/msil/emit/ILPrinterVisitor.scala +++ b/src/msil/ch/epfl/lamp/compiler/msil/emit/ILPrinterVisitor.scala @@ -110,7 +110,7 @@ abstract class ILPrinterVisitor extends Visitor { protected def printAssemblyBoilerplate() { // print all the external assemblies - for (val j <- 0 until as.length) { + for (j <- 0 until as.length) { printAssemblySignature(as(j), true) } // print assembly declaration @@ -170,7 +170,7 @@ abstract class ILPrinterVisitor extends Visitor { if (ifaces.length > 0) { println() print(" implements ") - for (val i <- 0 until ifaces.length) { + for (i <- 0 until ifaces.length) { if (i > 0) { println(",") print(" ") @@ -356,7 +356,7 @@ abstract class ILPrinterVisitor extends Visitor { if (locals.length > 0) { println(".locals init (") indent() - for (val i <- 0 until locals.length) { + for (i <- 0 until locals.length) { if (i > 0) println(",") print(locals(i)) } // end while @@ -402,7 +402,7 @@ abstract class ILPrinterVisitor extends Visitor { print("(") val targets = argument.asInstanceOf[Array[Label]] val m = targets.length - for (val i <- 0 until m) { + for (i <- 0 until m) { if (i != 0) print(", ") print(targets(i)) } // end for @@ -540,7 +540,7 @@ abstract class ILPrinterVisitor extends Visitor { print(' '); printName(method.Name) val params = method.GetParameters() print('(') - for (val i <- 0 until params.length) { + for (i <- 0 until params.length) { if (i > 0) print(", ") print(params(i).asInstanceOf[ParameterBuilder]) } @@ -570,7 +570,7 @@ abstract class ILPrinterVisitor extends Visitor { var params = method.GetParameters() print("(") - for (val i <- 0 until params.length) { + for (i <- 0 until params.length) { if (i > 0) print(", ") printSignature(params(i).ParameterType) } @@ -619,7 +619,7 @@ abstract class ILPrinterVisitor extends Visitor { def printAttributes(icap: ICustomAttributeProvider) { var attrs = icap.GetCustomAttributes(false) - for (val i <- 0 until attrs.length) { + for (i <- 0 until attrs.length) { print(".custom ") printSignature((attrs(i).asInstanceOf[Attribute]).getConstructor()) print(" = (") @@ -640,7 +640,7 @@ object ILPrinterVisitor { protected final val SPACES_LEN = SPACES.length() def hasControlChars(str: String): Boolean = { - for(val i <- 0 until str.length()) { + for(i <- 0 until str.length()) { var ch = str.charAt(i) ch match { case '\b' => diff --git a/src/partest/scala/tools/partest/nest/CompileManager.scala b/src/partest/scala/tools/partest/nest/CompileManager.scala index f7612823fc..0e48d58b8b 100644 --- a/src/partest/scala/tools/partest/nest/CompileManager.scala +++ b/src/partest/scala/tools/partest/nest/CompileManager.scala @@ -93,7 +93,7 @@ class DirectCompiler(val fileManager: FileManager) extends SimpleCompiler { } else "" val allOpts = fileManager.SCALAC_OPTS+" "+argString NestUI.verbose("scalac options: "+allOpts) - val args = List.fromArray(allOpts split "\\s") + val args = (allOpts split "\\s").toList val command = new CompilerCommand(args, testSettings, x => {}, false) val global = newGlobal(command.settings, logWriter) val testRep: ExtConsoleReporter = global.reporter.asInstanceOf[ExtConsoleReporter] diff --git a/src/partest/scala/tools/partest/nest/ConsoleRunner.scala b/src/partest/scala/tools/partest/nest/ConsoleRunner.scala index 1a2cfd6580..c353ea6f06 100644 --- a/src/partest/scala/tools/partest/nest/ConsoleRunner.scala +++ b/src/partest/scala/tools/partest/nest/ConsoleRunner.scala @@ -55,7 +55,7 @@ class ConsoleRunner extends DirectRunner with RunnerUtils { def main(argstr: String) { // tokenize args. filter: "".split("\\s") yields Array("") - var args = List.fromArray(argstr split "\\s").remove(_ == "") + var args = (argstr split "\\s").toList.filterNot(_ == "") if (args.length == 0) NestUI.usage() @@ -75,7 +75,7 @@ class ConsoleRunner extends DirectRunner with RunnerUtils { else if (!classPath.isEmpty) new ConsoleFileManager(classPath.get, true) else if (args contains "--pack") { - args = args.remove(_ == "--pack") // will create a result file '--pack' otherwise + args = args.filterNot(_ == "--pack") // will create a result file '--pack' otherwise new ConsoleFileManager("build/pack") } else // auto detection, see ConsoleFileManager.findLatest new ConsoleFileManager diff --git a/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala b/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala index 76e58efb74..2c5493f9e1 100644 --- a/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala +++ b/src/partest/scala/tools/partest/nest/ReflectiveRunner.scala @@ -26,7 +26,7 @@ class ReflectiveRunner extends RunnerUtils { val sepRunnerClassName = "scala.tools.partest.nest.ConsoleRunner" def main(args: String) { - val argList = List.fromArray(args.split("\\s")) + val argList = (args.split("\\s")).toList // find out which build to test val buildPath = searchPath("--buildpath", argList) diff --git a/src/partest/scala/tools/partest/nest/Worker.scala b/src/partest/scala/tools/partest/nest/Worker.scala index 22fb6d606e..a01b9b0974 100644 --- a/src/partest/scala/tools/partest/nest/Worker.scala +++ b/src/partest/scala/tools/partest/nest/Worker.scala @@ -72,7 +72,7 @@ class Worker(val fileManager: FileManager) extends Actor { file.getAbsolutePath.substring(filesPathLen) } } - NestUI.normal("[...]"+name+List.toString(List.make(totalWidth-name.length, ' ')), printer) + NestUI.normal("[...]"+name+List.toString(List.fill(totalWidth-name.length)(' ')), printer) } def printInfoEnd(success: Boolean, printer: PrintWriter) { diff --git a/src/scalap/scala/tools/scalap/Arguments.scala b/src/scalap/scala/tools/scalap/Arguments.scala index 4810adf1af..f50d799d11 100644 --- a/src/scalap/scala/tools/scalap/Arguments.scala +++ b/src/scalap/scala/tools/scalap/Arguments.scala @@ -95,7 +95,7 @@ object Arguments { i = i + 2 } } else { - var iter = prefixes.elements + var iter = prefixes.iterator val j = i while ((i == j) && iter.hasNext) { val prefix = iter.next @@ -105,7 +105,7 @@ object Arguments { } } if (i == j) { - val iter = prefixedBindings.keys; + val iter = prefixedBindings.keysIterator; while ((i == j) && iter.hasNext) { val prefix = iter.next if (args(i) startsWith prefix) { @@ -127,7 +127,7 @@ object Arguments { def parse(options: String*)(args: Array[String]): Arguments = { val parser = new Parser('-') - val iter = options.elements + val iter = options.iterator while (iter.hasNext) parser withOption iter.next parser.parse(args) diff --git a/src/scalap/scala/tools/scalap/CodeWriter.scala b/src/scalap/scala/tools/scalap/CodeWriter.scala index deb0e2c94a..97581b0f7a 100644 --- a/src/scalap/scala/tools/scalap/CodeWriter.scala +++ b/src/scalap/scala/tools/scalap/CodeWriter.scala @@ -33,7 +33,7 @@ class CodeWriter(writer: Writer) { def getIndentWidth = if (step == null) -1 else step.length() def setIndentWidth(width: Int): CodeWriter = - setIndentString(List.make(width, ' ').mkString) + setIndentString(List.fill(width)(' ').mkString) def getIndentString = step; diff --git a/src/scalap/scala/tools/scalap/scalax/rules/Input.scala b/src/scalap/scala/tools/scalap/scalax/rules/Input.scala index af4ac39464..c01f1d88c9 100644 --- a/src/scalap/scala/tools/scalap/scalax/rules/Input.scala +++ b/src/scalap/scala/tools/scalap/scalax/rules/Input.scala @@ -17,7 +17,7 @@ trait Input[+A] extends Iterable[A] { def next : Result[Input[A], A, Nothing] def index : Int - def elements = new Iterator[A] { + def iterator = new Iterator[A] { private var input : Input[A] = Input.this private var result = input.next @@ -38,17 +38,17 @@ class ArrayInput[A](val array : Array[A], val index : Int) extends Input[A] { lazy val next : Result[ArrayInput[A], A, Nothing] = if (index >= array.length) Failure else Success(new ArrayInput[A](array, index + 1), array(index)) - override lazy val toString = elements.mkString("\"", "", "\"") + override lazy val toString = this.iterator.mkString("\"", "", "\"") } class IterableInput[A](iterator : Iterator[A], val index : Int) extends Input[A] { - def this(iterable : Iterable[A]) = this(iterable.elements, 0) + def this(iterable : Iterable[A]) = this(iterable.iterator, 0) lazy val next : Result[IterableInput[A], A, Nothing] = if (!iterator.hasNext) Failure else Success(new IterableInput(iterator, index + 1), iterator.next) - override lazy val toString = elements.mkString("\"", "", "\"") + override lazy val toString = this.iterator.mkString("\"", "", "\"") } diff --git a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala index f71e2ab5ec..5b90cf9e58 100644 --- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala +++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala @@ -198,7 +198,7 @@ case class ConstantPool(len : Int) { val size = len - 1 private val buffer = new scala.collection.mutable.ArrayBuffer[ConstantPool => Any] - private val values = Array.make[Option[Any]](size, None) + private val values = Array.fill[Option[Any]](size)(None) def isFull = buffer.length >= size diff --git a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala index 08a3e1795b..dd711e41db 100644 --- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala +++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala @@ -12,7 +12,6 @@ package scala.tools.scalap.scalax.rules.scalasig import java.io.{PrintStream, ByteArrayOutputStream} import java.util.regex.Pattern -import _root_.scala.Symbol import scala.tools.scalap.scalax.util.StringUtil class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) { @@ -319,7 +318,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) { "\\$times" -> "*", "\\$div" -> "/", "\\$bslash" -> "\\\\", "\\$greater" -> ">", "\\$qmark" -> "?", "\\$percent" -> "%", "\\$amp" -> "&", "\\$colon" -> ":", "\\$u2192" -> "→") - val pattern = Pattern.compile(_syms.keySet.foldLeft("")((x, y) => if (x == "") y else x + "|" + y)) + val pattern = Pattern.compile(_syms.keys.foldLeft("")((x, y) => if (x == "") y else x + "|" + y)) val placeholderPattern = "_\\$(\\d)+" def processName(name: String) = { diff --git a/src/swing/scala/swing/BufferWrapper.scala b/src/swing/scala/swing/BufferWrapper.scala index ad2f5d4278..9e563e230e 100644 --- a/src/swing/scala/swing/BufferWrapper.scala +++ b/src/swing/scala/swing/BufferWrapper.scala @@ -26,5 +26,5 @@ protected[swing] abstract class BufferWrapper[A] extends Buffer[A] { outer => override def stringPrefix = outer.stringPrefix + "RO" } def +:(a: A): this.type = { insertAt(0, a); this } - def elements = Iterator.range(0,length).map(apply(_)) + def iterator = Iterator.range(0,length).map(apply(_)) } diff --git a/src/swing/scala/swing/ButtonGroup.scala b/src/swing/scala/swing/ButtonGroup.scala index 4b5eeab74c..0f518d4ddc 100644 --- a/src/swing/scala/swing/ButtonGroup.scala +++ b/src/swing/scala/swing/ButtonGroup.scala @@ -17,9 +17,9 @@ class ButtonGroup(initialButtons: AbstractButton*) { val buttons: mutable.Set[AbstractButton] = new mutable.Set[AbstractButton] { def -=(b: AbstractButton): this.type = { peer.remove(b.peer); this } def +=(b: AbstractButton): this.type = { peer.add(b.peer); this } - def contains(b: AbstractButton) = elements.contains(b) + def contains(b: AbstractButton) = this.iterator.contains(b) override def size = peer.getButtonCount - def elements: Iterator[AbstractButton] = new Iterator[AbstractButton] { + def iterator: Iterator[AbstractButton] = new Iterator[AbstractButton] { val enum = peer.getElements def next = Component.wrapperFor[AbstractButton](enum.nextElement) def hasNext = enum.hasMoreElements diff --git a/src/swing/scala/swing/LayoutContainer.scala b/src/swing/scala/swing/LayoutContainer.scala index e05273ab5f..1526c7ed7e 100644 --- a/src/swing/scala/swing/LayoutContainer.scala +++ b/src/swing/scala/swing/LayoutContainer.scala @@ -54,7 +54,7 @@ trait LayoutContainer extends Container.Wrapper { } def get(c: Component) = Swing.toOption(constraintsFor(c)) override def size = peer.getComponentCount - def elements: Iterator[(Component, Constraints)] = + def iterator: Iterator[(Component, Constraints)] = Iterator.range(0,size).map { c => val comp = Component.wrapperFor[Component](peer.getComponent(c).asInstanceOf[JComponent]) (comp, constraintsFor(comp)) diff --git a/src/swing/scala/swing/ListView.scala b/src/swing/scala/swing/ListView.scala index fe9f34de57..ec61bb6908 100644 --- a/src/swing/scala/swing/ListView.scala +++ b/src/swing/scala/swing/ListView.scala @@ -150,7 +150,7 @@ class ListView[A] extends Component { case model: ModelWrapper => model.items case model @ _ => new Seq[A] { def length = model.getSize - def elements = new Iterator[A] { + def iterator = new Iterator[A] { var idx = 0 def next = { idx += 1; apply(idx-1) } def hasNext = idx < length @@ -175,7 +175,7 @@ class ListView[A] extends Component { def +=(n: A): this.type def contains(n: A) = a.contains(n) override def size = a.length - def elements = a.elements + def iterator = a.iterator } /** diff --git a/src/swing/scala/swing/Publisher.scala b/src/swing/scala/swing/Publisher.scala index f586af8813..338fa838c7 100644 --- a/src/swing/scala/swing/Publisher.scala +++ b/src/swing/scala/swing/Publisher.scala @@ -90,8 +90,8 @@ private[swing] trait SingleRefCollection[+A <: AnyRef] extends Collection[A] { s protected[this] def removeReference(ref: Reference[A]) - def elements = new Iterator[A] { - private val elems = self.underlying.elements + def iterator = new Iterator[A] { + private val elems = self.underlying.iterator private var hd: A = _ private var ahead: Boolean = false private def skip: Unit = @@ -134,7 +134,7 @@ abstract class RefBuffer[A <: AnyRef] extends Buffer[A] with SingleRefCollection def update(n: Int, el: A) { purgeReferences(); underlying(n) = Ref(el) } def readOnly : Seq[A] = new Seq[A] { def length = self.length - def elements = self.elements + def iterator = self.iterator def apply(n: Int) = self(n) } def apply(n: Int) = { diff --git a/src/swing/scala/swing/Table.scala b/src/swing/scala/swing/Table.scala index f9568782c3..2a40a635ab 100644 --- a/src/swing/scala/swing/Table.scala +++ b/src/swing/scala/swing/Table.scala @@ -164,7 +164,7 @@ class Table extends Component with Scrollable with Publisher { def +=(n: A): this.type def contains(n: A) = a.contains(n) override def size = a.length - def elements = a.elements + def iterator = a.iterator } object rows extends SelectionSet(peer.getSelectedRows) { |