summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/WrappedArray.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2010-11-30 15:38:56 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2010-11-30 15:38:56 +0000
commit4be5e11cccace4974ed9a449052455392570139f (patch)
tree88c86bc65b88df08b48584ed791acd1619983c0c /src/library/scala/collection/mutable/WrappedArray.scala
parent402d96dd3fab6ae677966a9a258c00b3f34a37ed (diff)
downloadscala-4be5e11cccace4974ed9a449052455392570139f.tar.gz
scala-4be5e11cccace4974ed9a449052455392570139f.tar.bz2
scala-4be5e11cccace4974ed9a449052455392570139f.zip
Deprecated the @serializable annotation, introd...
Deprecated the @serializable annotation, introduce a new trait "scala.Serializable" which has to be extended instead (cross-platform). Known issues: - Companion objects of serializable classes (including case classes) are automatically made serializable. However, they don't extend "Serializable" statically because of the known difficulty (should be done before typing, but hard). - Writing "case class C() extends Serializable" gives "error: trait Serializable is inherited twice" - Functions are serializable, but don't extend Serializable dynamically (could be fixed by making FunctionN Serializable - shouldn't we?) Note that @SerialVersionUID continues to be an annotation; it generates a static field, which is not possible otherwise in scala. Review by dragos, extempore. Question to dragos: in JavaPlatform.isMaybeBoxed, why is there a test for "JavaSerializableClass"? Is that correct?
Diffstat (limited to 'src/library/scala/collection/mutable/WrappedArray.scala')
-rw-r--r--src/library/scala/collection/mutable/WrappedArray.scala30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/library/scala/collection/mutable/WrappedArray.scala b/src/library/scala/collection/mutable/WrappedArray.scala
index 4246a59bf8..a5fba22846 100644
--- a/src/library/scala/collection/mutable/WrappedArray.scala
+++ b/src/library/scala/collection/mutable/WrappedArray.scala
@@ -104,80 +104,70 @@ object WrappedArray {
def newBuilder[A]: Builder[A, IndexedSeq[A]] = new ArrayBuffer
- @serializable
- final class ofRef[T <: AnyRef](val array: Array[T]) extends WrappedArray[T] {
+ final class ofRef[T <: AnyRef](val array: Array[T]) extends WrappedArray[T] with Serializable {
lazy val elemManifest = ClassManifest.classType[T](array.getClass.getComponentType)
def length: Int = array.length
def apply(index: Int): T = array(index).asInstanceOf[T]
def update(index: Int, elem: T) { array(index) = elem }
}
- @serializable
- final class ofByte(val array: Array[Byte]) extends WrappedArray[Byte] {
+ final class ofByte(val array: Array[Byte]) extends WrappedArray[Byte] with Serializable {
def elemManifest = ClassManifest.Byte
def length: Int = array.length
def apply(index: Int): Byte = array(index)
def update(index: Int, elem: Byte) { array(index) = elem }
}
- @serializable
- final class ofShort(val array: Array[Short]) extends WrappedArray[Short] {
+ final class ofShort(val array: Array[Short]) extends WrappedArray[Short] with Serializable {
def elemManifest = ClassManifest.Short
def length: Int = array.length
def apply(index: Int): Short = array(index)
def update(index: Int, elem: Short) { array(index) = elem }
}
- @serializable
- final class ofChar(val array: Array[Char]) extends WrappedArray[Char] {
+ final class ofChar(val array: Array[Char]) extends WrappedArray[Char] with Serializable {
def elemManifest = ClassManifest.Char
def length: Int = array.length
def apply(index: Int): Char = array(index)
def update(index: Int, elem: Char) { array(index) = elem }
}
- @serializable
- final class ofInt(val array: Array[Int]) extends WrappedArray[Int] {
+ final class ofInt(val array: Array[Int]) extends WrappedArray[Int] with Serializable {
def elemManifest = ClassManifest.Int
def length: Int = array.length
def apply(index: Int): Int = array(index)
def update(index: Int, elem: Int) { array(index) = elem }
}
- @serializable
- final class ofLong(val array: Array[Long]) extends WrappedArray[Long] {
+ final class ofLong(val array: Array[Long]) extends WrappedArray[Long] with Serializable {
def elemManifest = ClassManifest.Long
def length: Int = array.length
def apply(index: Int): Long = array(index)
def update(index: Int, elem: Long) { array(index) = elem }
}
- @serializable
- final class ofFloat(val array: Array[Float]) extends WrappedArray[Float] {
+ final class ofFloat(val array: Array[Float]) extends WrappedArray[Float] with Serializable {
def elemManifest = ClassManifest.Float
def length: Int = array.length
def apply(index: Int): Float = array(index)
def update(index: Int, elem: Float) { array(index) = elem }
}
- @serializable
- final class ofDouble(val array: Array[Double]) extends WrappedArray[Double] {
+ final class ofDouble(val array: Array[Double]) extends WrappedArray[Double] with Serializable {
def elemManifest = ClassManifest.Double
def length: Int = array.length
def apply(index: Int): Double = array(index)
def update(index: Int, elem: Double) { array(index) = elem }
}
- @serializable
- final class ofBoolean(val array: Array[Boolean]) extends WrappedArray[Boolean] {
+ final class ofBoolean(val array: Array[Boolean]) extends WrappedArray[Boolean] with Serializable {
def elemManifest = ClassManifest.Boolean
def length: Int = array.length
def apply(index: Int): Boolean = array(index)
def update(index: Int, elem: Boolean) { array(index) = elem }
}
- @serializable
- final class ofUnit(val array: Array[Unit]) extends WrappedArray[Unit] {
+ final class ofUnit(val array: Array[Unit]) extends WrappedArray[Unit] with Serializable {
def elemManifest = ClassManifest.Unit
def length: Int = array.length
def apply(index: Int): Unit = array(index)