Skip to content

Commit e02c2be

Browse files
authored
Merge pull request #210 from ashawley/2.13-collections
Re-work 2.13 collections changes
2 parents 1b951af + 4d1d67a commit e02c2be

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+79
-17
lines changed

jvm/src/test/scala/scala/xml/ReuseNodesTest.scala

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package scala.xml
22

33
import scala.xml.transform._
4+
import scala.collection.Seq
45
import org.junit.Assert.assertSame
56
import org.junit.experimental.theories.Theories
67
import org.junit.experimental.theories.Theory

jvm/src/test/scala/scala/xml/SerializationTest.scala

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package scala.xml
22

3+
import scala.collection.Seq
34
import org.junit.Assert.assertEquals
45
import org.junit.Test
56

jvm/src/test/scala/scala/xml/XMLTest.scala

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import java.io.StringWriter
1111
import java.io.ByteArrayOutputStream
1212
import java.io.StringReader
1313
import scala.collection.Iterable
14+
import scala.collection.Seq
1415
import scala.xml.Utility.sort
1516

1617
object XMLTestJVM {

shared/src/main/scala/scala/xml/Atom.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* The class `Atom` provides an XML node for text (`PCDATA`).
1416
* It is used in both non-bound and bound XML representations.

shared/src/main/scala/scala/xml/Attribute.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* This singleton object contains the `apply` and `unapply` methods for
1416
* convenient construction and deconstruction.

shared/src/main/scala/scala/xml/Document.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* A document information item (according to InfoSet spec). The comments
1416
* are copied from the Infoset spec, only augmented with some information

shared/src/main/scala/scala/xml/Elem.scala

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
package scala
1212
package xml
1313

14+
import scala.collection.Seq
15+
1416
/**
1517
* This singleton object contains the `apply` and `unapplySeq` methods for
1618
* convenient construction and deconstruction. It is possible to deconstruct

shared/src/main/scala/scala/xml/Equality.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* In an attempt to contain the damage being inflicted on consistency by the
1416
* ad hoc `equals` methods spread around `xml`, the logic is centralized and

shared/src/main/scala/scala/xml/Group.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* A hack to group XML nodes in one node for output.
1416
*

shared/src/main/scala/scala/xml/MetaData.scala

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ package xml
1414
import Utility.sbToString
1515
import scala.annotation.tailrec
1616
import scala.collection.AbstractIterable
17+
import scala.collection.Seq
1718

1819
object MetaData {
1920
/**

shared/src/main/scala/scala/xml/NamespaceBinding.scala

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
1213
import Utility.sbToString
1314

1415
/**

shared/src/main/scala/scala/xml/Node.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* This singleton object contains the `unapplySeq` method for
1416
* convenient deconstruction.

shared/src/main/scala/scala/xml/NodeSeq.scala

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import scala.collection.{ mutable, immutable, generic, SeqLike, AbstractSeq }
1313
import mutable.{ Builder, ListBuffer }
1414
import generic.{ CanBuildFrom }
1515
import scala.language.implicitConversions
16+
import scala.collection.Seq
1617

1718
/**
1819
* This object ...

shared/src/main/scala/scala/xml/Null.scala

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ package xml
1111

1212
import Utility.isNameStart
1313
import scala.collection.Iterator
14+
import scala.collection.Seq
1415

1516
/**
1617
* Essentially, every method in here is a dummy, returning Zero[T].

shared/src/main/scala/scala/xml/PrefixedAttribute.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* prefixed attributes always have a non-null namespace.
1416
*

shared/src/main/scala/scala/xml/PrettyPrinter.scala

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
1213
import Utility.sbToString
1314

1415
/**

shared/src/main/scala/scala/xml/TextBuffer.scala

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
1213
import Utility.isSpace
1314

1415
object TextBuffer {

shared/src/main/scala/scala/xml/UnprefixedAttribute.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* Unprefixed attributes have the null namespace, and no prefix field
1416
*

shared/src/main/scala/scala/xml/Utility.scala

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ package xml
1111

1212
import scala.collection.mutable
1313
import scala.language.implicitConversions
14+
import scala.collection.Seq
1415

1516
/**
1617
* The `Utility` object provides utility functions for processing instances

shared/src/main/scala/scala/xml/Xhtml.scala

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package xml
44

55
import parsing.XhtmlEntities
66
import Utility.{ sbToString, isAtomAndNotText }
7+
import scala.collection.Seq
78

89
/* (c) David Pollak 2007 WorldWide Conferencing, LLC */
910

shared/src/main/scala/scala/xml/dtd/ContentModel.scala

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package scala
1010
package xml
1111
package dtd
1212

13+
import scala.collection.Seq
1314
import scala.xml.dtd.impl._
1415
import scala.xml.Utility.sbToString
1516
import PartialFunction._

shared/src/main/scala/scala/xml/dtd/DTD.scala

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ package xml
1111
package dtd
1212

1313
import scala.collection.mutable
14+
import scala.collection.Seq
1415

1516
/**
1617
* A document type declaration.

shared/src/main/scala/scala/xml/dtd/DocType.scala

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ package scala
1010
package xml
1111
package dtd
1212

13+
import scala.collection.Seq
14+
1315
/**
1416
* An XML node for document type declaration.
1517
*

shared/src/main/scala/scala/xml/dtd/ElementValidator.scala

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ package dtd
1212

1313
import PartialFunction._
1414
import scala.collection.mutable
15+
import scala.collection.Seq
1516

1617
import ContentModel.ElemName
1718
import MakeValidationException._ // @todo other exceptions

shared/src/main/scala/scala/xml/dtd/Scanner.scala

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ package scala
1010
package xml
1111
package dtd
1212

13+
import scala.collection.Seq
14+
1315
/**
1416
* Scanner for regexps (content models in DTD element declarations)
1517
* todo: cleanup

shared/src/main/scala/scala/xml/dtd/impl/BaseBerrySethi.scala

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package scala
1010
package xml.dtd.impl
1111

1212
import scala.collection.{ mutable, immutable }
13+
import scala.collection.Seq
1314

1415
// todo: replace global variable pos with acc
1516

shared/src/main/scala/scala/xml/dtd/impl/Inclusion.scala

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
package scala
1010
package xml.dtd.impl
1111

12+
import scala.collection.Seq
13+
1214
/**
1315
* A fast test of language inclusion between minimal automata.
1416
* inspired by the ''AMoRE automata library''.

shared/src/main/scala/scala/xml/dtd/impl/NondetWordAutom.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package scala
1010
package xml.dtd.impl
1111

1212
import scala.collection.{ immutable, mutable }
13+
import scala.collection.Seq
1314

1415
/**
1516
* A nondeterministic automaton. States are integers, where
@@ -47,7 +48,7 @@ private[dtd] abstract class NondetWordAutom[T <: AnyRef] {
4748
def nextDefault(Q: immutable.BitSet): immutable.BitSet = next(Q, default)
4849

4950
private def next(Q: immutable.BitSet, f: (Int) => immutable.BitSet): immutable.BitSet =
50-
(Q map f).foldLeft(immutable.BitSet.empty)(_ ++ _)
51+
Q.toSet.map(f).foldLeft(immutable.BitSet.empty)(_ ++ _)
5152

5253
private def finalStates = 0 until nstates filter isFinal
5354
override def toString = {

shared/src/main/scala/scala/xml/dtd/impl/SubsetConstruction.scala

+8-8
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ private[dtd] class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T])
2020

2121
def determinize: DetWordAutom[T] = {
2222
// for assigning numbers to bitsets
23-
var indexMap = scala.collection.Map[immutable.BitSet, Int]()
24-
var invIndexMap = scala.collection.Map[Int, immutable.BitSet]()
23+
val indexMap = mutable.Map[immutable.BitSet, Int]()
24+
val invIndexMap = mutable.Map[Int, immutable.BitSet]()
2525
var ix = 0
2626

2727
// we compute the dfa with states = bitsets
@@ -30,15 +30,15 @@ private[dtd] class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T])
3030

3131
var states = Set(q0, sink) // initial set of sets
3232
val delta = new mutable.HashMap[immutable.BitSet, mutable.HashMap[T, immutable.BitSet]]
33-
var deftrans = mutable.Map(q0 -> sink, sink -> sink) // initial transitions
34-
var finals: mutable.Map[immutable.BitSet, Int] = mutable.Map()
33+
val deftrans = mutable.Map(q0 -> sink, sink -> sink) // initial transitions
34+
val finals: mutable.Map[immutable.BitSet, Int] = mutable.Map()
3535
val rest = new mutable.Stack[immutable.BitSet]
3636

3737
rest.push(sink, q0)
3838

3939
def addFinal(q: immutable.BitSet): Unit = {
4040
if (nfa containsFinal q)
41-
finals = finals.updated(q, selectTag(q, nfa.finals))
41+
finals(q) = selectTag(q, nfa.finals)
4242
}
4343
def add(Q: immutable.BitSet): Unit = {
4444
if (!states(Q)) {
@@ -53,8 +53,8 @@ private[dtd] class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T])
5353
while (!rest.isEmpty) {
5454
val P = rest.pop()
5555
// assign a number to this bitset
56-
indexMap = indexMap.updated(P, ix)
57-
invIndexMap = invIndexMap.updated(ix, P)
56+
indexMap(P) = ix
57+
invIndexMap(ix) = P
5858
ix += 1
5959

6060
// make transition map
@@ -69,7 +69,7 @@ private[dtd] class SubsetConstruction[T <: AnyRef](val nfa: NondetWordAutom[T])
6969

7070
// collect default transitions
7171
val Pdef = nfa nextDefault P
72-
deftrans = deftrans.updated(P, Pdef)
72+
deftrans(P) = Pdef
7373
add(Pdef)
7474
}
7575

shared/src/main/scala/scala/xml/dtd/impl/WordBerrySethi.scala

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package scala
1010
package xml.dtd.impl
1111

1212
import scala.collection.{ immutable, mutable }
13+
import scala.collection.Seq
1314

1415
/**
1516
* This class turns a regular expression into a [[scala.util.automata.NondetWordAutom]]

shared/src/main/scala/scala/xml/factory/LoggedNodeFactory.scala

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ package scala
1010
package xml
1111
package factory
1212

13+
import scala.collection.Seq
14+
1315
/**
1416
* This class logs what the nodefactory is actually doing.
1517
* If you want to see what happens during loading, use it like this:

shared/src/main/scala/scala/xml/factory/NodeFactory.scala

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ package scala
1010
package xml
1111
package factory
1212

13+
import scala.collection.Seq
14+
1315
trait NodeFactory[A <: Node] {
1416
val ignoreComments = false
1517
val ignoreProcInstr = false

shared/src/main/scala/scala/xml/parsing/FactoryAdapter.scala

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ package xml
1111
package parsing
1212

1313
import scala.collection.{ mutable, Iterator }
14+
import scala.collection.Seq
1415
import org.xml.sax.Attributes
1516
import org.xml.sax.helpers.DefaultHandler
1617

shared/src/main/scala/scala/xml/parsing/MarkupParser.scala

+8-8
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
358358
}
359359
nextch()
360360
val str = cbuf.toString()
361-
cbuf.length = 0
361+
cbuf.setLength(0)
362362
str
363363
}
364364

@@ -390,7 +390,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
390390
xToken("--")
391391
while (!eof) {
392392
if (ch == '-' && { sb.append(ch); nextch(); ch == '-' }) {
393-
sb.length = sb.length - 1
393+
sb.setLength(sb.length - 1)
394394
nextch()
395395
xToken('>')
396396
return handle.comment(pos, sb.toString())
@@ -608,7 +608,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
608608
exit = eof || (ch == '<') || (ch == '&')
609609
}
610610
val str = cbuf.toString
611-
cbuf.length = 0
611+
cbuf.setLength(0)
612612
str
613613
}
614614

@@ -630,7 +630,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
630630
}
631631
nextch()
632632
val str = cbuf.toString()
633-
cbuf.length = 0
633+
cbuf.setLength(0)
634634
str
635635
}
636636

@@ -653,7 +653,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
653653
}
654654
nextch()
655655
val str = cbuf.toString
656-
cbuf.length = 0
656+
cbuf.setLength(0)
657657
str
658658
}
659659

@@ -799,7 +799,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
799799
//Console.println("END["+ch+"]")
800800
nextch()
801801
val cmstr = cbuf.toString()
802-
cbuf.length = 0
802+
cbuf.setLength(0)
803803
handle.elemDecl(n, cmstr)
804804
}
805805

@@ -826,7 +826,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
826826
nextch()
827827
}
828828
val atpe = cbuf.toString
829-
cbuf.length = 0
829+
cbuf.setLength(0)
830830

831831
val defdecl: DefaultDecl = ch match {
832832
case '\'' | '"' =>
@@ -846,7 +846,7 @@ trait MarkupParser extends MarkupParserCommon with TokenTests {
846846
xSpaceOpt()
847847

848848
attList ::= AttrDecl(aname, atpe, defdecl)
849-
cbuf.length = 0
849+
cbuf.setLength(0)
850850
}
851851
nextch()
852852
handle.attListDecl(n, attList.reverse)

0 commit comments

Comments
 (0)