summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2009-07-31 14:47:42 +0000
committerPhilipp Haller <hallerp@gmail.com>2009-07-31 14:47:42 +0000
commitbe31fef41ad7585af15f3dc61be919ed9dc5ea1a (patch)
tree1c5b17ca8cbb43f1e0af8996ec5d36ef41944642
parentbd1e6e09342412a042cf7582124e90e12720e2ba (diff)
downloadscala-be31fef41ad7585af15f3dc61be919ed9dc5ea1a.tar.gz
scala-be31fef41ad7585af15f3dc61be919ed9dc5ea1a.tar.bz2
scala-be31fef41ad7585af15f3dc61be919ed9dc5ea1a.zip
Fixed #2212.
-rw-r--r--src/library/scala/collection/generic/LinearSequenceTemplate.scala9
-rw-r--r--test/files/run/t2212.check3
-rw-r--r--test/files/run/t2212.scala10
3 files changed, 20 insertions, 2 deletions
diff --git a/src/library/scala/collection/generic/LinearSequenceTemplate.scala b/src/library/scala/collection/generic/LinearSequenceTemplate.scala
index 6dcf96fce4..2e1f61a36f 100644
--- a/src/library/scala/collection/generic/LinearSequenceTemplate.scala
+++ b/src/library/scala/collection/generic/LinearSequenceTemplate.scala
@@ -280,11 +280,16 @@ trait LinearSequenceTemplate[+A, +This <: LinearSequenceTemplate[A, This] with L
case that1: LinearSequence[_] =>
var these = this
var those = that1
- while (!these.isEmpty && !those.isEmpty && these.head == those.head) {
+ while (these != null && those != null && !these.isEmpty && !those.isEmpty && these.head == those.head) {
these = these.tail
those = those.tail
}
- these.isEmpty && those.isEmpty
+ if (these == null)
+ those == null
+ else if (those == null)
+ false
+ else
+ these.isEmpty && those.isEmpty
case _ => super.sameElements(that)
}
diff --git a/test/files/run/t2212.check b/test/files/run/t2212.check
new file mode 100644
index 0000000000..302bd0b6a8
--- /dev/null
+++ b/test/files/run/t2212.check
@@ -0,0 +1,3 @@
+LinkedList(1)
+LinkedList(1)
+true
diff --git a/test/files/run/t2212.scala b/test/files/run/t2212.scala
new file mode 100644
index 0000000000..5f4447fa2b
--- /dev/null
+++ b/test/files/run/t2212.scala
@@ -0,0 +1,10 @@
+object Test {
+ def main(args: Array[String]) {
+ import collection.mutable._
+ val x4 = new LinkedList[Int](1, null)
+ println(x4)
+ val y4 = new LinkedList[Int](1, null)
+ println(y4)
+ println(x4 equals y4) // or (y4 equals x4)
+ }
+}