summaryrefslogtreecommitdiff
path: root/test/files/run/t5018.scala
diff options
context:
space:
mode:
authorAleksandar Prokopec <axel22@gmail.com>2012-05-04 10:46:29 +0200
committerAleksandar Prokopec <axel22@gmail.com>2012-05-04 10:48:57 +0200
commit628eaa5aca0117823327571a1384f0d717fd7b4e (patch)
tree4b0826cea24d0c94c15bbca0b23e6b177336682d /test/files/run/t5018.scala
parentf146d5826fc335ee1ca9c285d69086a7475cb71e (diff)
downloadscala-628eaa5aca0117823327571a1384f0d717fd7b4e.tar.gz
scala-628eaa5aca0117823327571a1384f0d717fd7b4e.tar.bz2
scala-628eaa5aca0117823327571a1384f0d717fd7b4e.zip
Fix for si-5018.
Methods keySet, values and withDefault now return serializable collections.
Diffstat (limited to 'test/files/run/t5018.scala')
-rw-r--r--test/files/run/t5018.scala37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/files/run/t5018.scala b/test/files/run/t5018.scala
new file mode 100644
index 0000000000..bb67a252e5
--- /dev/null
+++ b/test/files/run/t5018.scala
@@ -0,0 +1,37 @@
+
+
+
+import java.io._
+import collection._
+
+
+
+object Test {
+
+ def serializeDeserialize[T <: AnyRef](obj: T) = {
+ val buffer = new ByteArrayOutputStream
+ val out = new ObjectOutputStream(buffer)
+ out.writeObject(obj)
+ val in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray))
+ in.readObject.asInstanceOf[T]
+ }
+
+ def main(args: Array[String]) {
+ val values = mutable.Map(1 -> 1).values
+ assert(serializeDeserialize(values).toList == values.toList)
+
+ val keyset = mutable.Map(1 -> 1).keySet
+ assert(serializeDeserialize(keyset) == keyset)
+
+ val imkeyset = immutable.Map(1 -> 1).keySet
+ assert(serializeDeserialize(imkeyset) == imkeyset)
+
+ val defaultmap = immutable.Map(1 -> 1).withDefaultValue(1)
+ assert(serializeDeserialize(defaultmap) == defaultmap)
+
+ val minusmap = mutable.Map(1 -> 1).withDefault(x => -x)
+ assert(serializeDeserialize(minusmap) == minusmap)
+ }
+
+}
+