diff options
author | Paul Phillips <paulp@improving.org> | 2009-07-18 13:20:09 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-07-18 13:20:09 +0000 |
commit | 1f6c8f2be985dd24cb47dc1569d7980cf7a0fd2f (patch) | |
tree | 78c93f549f0ed59e172ae0b5b41aa81939ac9a26 /src/library | |
parent | d6798ac2ab92a8414678fc075c4381e0bc51f438 (diff) | |
download | scala-1f6c8f2be985dd24cb47dc1569d7980cf7a0fd2f.tar.gz scala-1f6c8f2be985dd24cb47dc1569d7980cf7a0fd2f.tar.bz2 scala-1f6c8f2be985dd24cb47dc1569d7980cf7a0fd2f.zip |
Removed some identical code from the collection...
Removed some identical code from the collections classes in hopes of
finding some consistency in collections equality. Added more test cases
to the sequenceComparisons test.
Diffstat (limited to 'src/library')
3 files changed, 6 insertions, 29 deletions
diff --git a/src/library/scala/collection/generic/LinearSequenceTemplate.scala b/src/library/scala/collection/generic/LinearSequenceTemplate.scala index 285170f63d..5a66f4cfa5 100644 --- a/src/library/scala/collection/generic/LinearSequenceTemplate.scala +++ b/src/library/scala/collection/generic/LinearSequenceTemplate.scala @@ -361,15 +361,7 @@ trait LinearSequenceTemplate[+A, +This <: LinearSequenceTemplate[A, This] with L } override def equals(that: Any): Boolean = that match { - case that1: LinearSequence[a] => - var these = this - var those = that1 - while (!these.isEmpty && !those.isEmpty && these.head == those.head) { - these = these.tail - those = those.tail - } - these.isEmpty && those.isEmpty - case _ => - super.equals(that) + case that: LinearSequence[_] => this sameElements that + case _ => super.equals(that) } } diff --git a/src/library/scala/collection/generic/SequenceTemplate.scala b/src/library/scala/collection/generic/SequenceTemplate.scala index 6696ca9e8c..0b210dd3f5 100644 --- a/src/library/scala/collection/generic/SequenceTemplate.scala +++ b/src/library/scala/collection/generic/SequenceTemplate.scala @@ -569,16 +569,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.iterator - val those = that1.iterator - while (these.hasNext && those.hasNext) - if (these.next() != those.next()) - return false - - !these.hasNext && !those.hasNext - case _ => - false + case that: Sequence[_] => this sameElements that + case _ => false } /** Need to override string, so that it's not the Function1's string that gets mixed in. diff --git a/src/library/scala/collection/generic/VectorTemplate.scala b/src/library/scala/collection/generic/VectorTemplate.scala index 96e80276b8..daba1709cd 100644 --- a/src/library/scala/collection/generic/VectorTemplate.scala +++ b/src/library/scala/collection/generic/VectorTemplate.scala @@ -258,15 +258,8 @@ trait VectorTemplate[+A, +This <: VectorTemplate[A, This] with Vector[A]] extend } override def equals(that: Any): Boolean = that match { - case that1: Vector[a] => - val len = this.length - len == that1.length && { - var i = 0 - while (i < len && this(i) == that1(i)) i += 1 - i == len - } - case _ => - super.equals(that) + case that: Vector[_] => this.length == that.length && startsWith(that, 0) + case _ => super.equals(that) } override def view = new VectorView[A, This] { |