diff options
-rw-r--r-- | src/library/scala/runtime/BoxedArray.scala | 4 | ||||
-rw-r--r-- | test/files/run/arrays.check | 2 | ||||
-rw-r--r-- | test/files/run/arrays.scala | 12 |
3 files changed, 14 insertions, 4 deletions
diff --git a/src/library/scala/runtime/BoxedArray.scala b/src/library/scala/runtime/BoxedArray.scala index d0555e8e62..f3193ec017 100644 --- a/src/library/scala/runtime/BoxedArray.scala +++ b/src/library/scala/runtime/BoxedArray.scala @@ -99,9 +99,7 @@ abstract class BoxedArray extends Array.Array0[Any] { final override def ++[b >: Any](that: Iterable[b]): Array[b] = super.++(that).toArray final def zip[b](that: Array[b]): Array[Tuple2[Any,b]] = { - val len = length - if(len != that.length) - throw new Error("zipping arrays of different length") + val len = length min that.length val result = new Array[Tuple2[Any,b]](len) var i = 0 while (i < len) { diff --git a/test/files/run/arrays.check b/test/files/run/arrays.check index 8a0c57deae..a649c9b4f8 100644 --- a/test/files/run/arrays.check +++ b/test/files/run/arrays.check @@ -1 +1 @@ -checks: 2300 +checks: 2301 diff --git a/test/files/run/arrays.scala b/test/files/run/arrays.scala index 5fcc5e6614..927112d851 100644 --- a/test/files/run/arrays.scala +++ b/test/files/run/arrays.scala @@ -336,6 +336,14 @@ object Test { } //########################################################################## + // Miscellaneous checks + def checkZip(): Unit = { + val zipped = Array("a", "b", "c").zip(Array(1, 2)) + val expected = Array(("a",1), ("b",2)) + check(zipped sameElements expected, zipped.toList, expected.toList) + } + + //########################################################################## // Arrays val uarray: Array[Unit ] = Array(u0, u1); @@ -903,6 +911,10 @@ object Test { //###################################################################### + checkZip() + + //###################################################################### + println("checks: " + checks) //###################################################################### |