From 9d84e89d27c396203e84f6ae685863210ebc1968 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 14 Sep 2012 10:54:23 -0700 Subject: Added constant empty array to the companion objects. Because there are lots of times when you just need an array and shouldn't have to allocate one every time or pick a random spot to cache yet another empty array. --- test/files/run/empty-array.scala | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 test/files/run/empty-array.scala (limited to 'test/files/run/empty-array.scala') diff --git a/test/files/run/empty-array.scala b/test/files/run/empty-array.scala new file mode 100644 index 0000000000..e56c86df5c --- /dev/null +++ b/test/files/run/empty-array.scala @@ -0,0 +1,8 @@ +object Test { + def main(args: Array[String]): Unit = { + println(Byte.emptyArray.length) + println(Double.emptyArray.length) + println(Boolean.emptyArray.length) + // okay okay okay + } +} -- cgit v1.2.3 From 121f3a92ea86258ab8507c6a7759cd2242bebab6 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Sun, 16 Sep 2012 20:55:34 -0700 Subject: Revert "Added constant empty array to the companion objects." This reverts most of commit 9d84e89d2 . --- src/compiler/scala/tools/cmd/gen/AnyVals.scala | 8 +------- src/library/scala/Boolean.scala | 7 ------- src/library/scala/Byte.scala | 8 -------- src/library/scala/Char.scala | 8 -------- src/library/scala/Double.scala | 8 -------- src/library/scala/Float.scala | 8 -------- src/library/scala/Int.scala | 8 -------- src/library/scala/Long.scala | 8 -------- src/library/scala/Short.scala | 8 -------- test/files/run/empty-array.scala | 6 +++--- 10 files changed, 4 insertions(+), 73 deletions(-) (limited to 'test/files/run/empty-array.scala') diff --git a/src/compiler/scala/tools/cmd/gen/AnyVals.scala b/src/compiler/scala/tools/cmd/gen/AnyVals.scala index b4f5641b98..6d652ffdfe 100644 --- a/src/compiler/scala/tools/cmd/gen/AnyVals.scala +++ b/src/compiler/scala/tools/cmd/gen/AnyVals.scala @@ -320,13 +320,7 @@ def unbox(x: java.lang.Object): @name@ = @unboxImpl@ override def toString = "object scala.@name@" """ - def nonUnitCompanions = """ -/** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[@name@] - */ -final val emptyArray = new Array[@name@](0)""" + def nonUnitCompanions = "" // todo def cardinalCompanion = """ /** The smallest value representable as a @name@. diff --git a/src/library/scala/Boolean.scala b/src/library/scala/Boolean.scala index d7311078ab..440e546f19 100644 --- a/src/library/scala/Boolean.scala +++ b/src/library/scala/Boolean.scala @@ -135,12 +135,5 @@ object Boolean extends AnyValCompanion { */ override def toString = "object scala.Boolean" - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Boolean] - */ - final val emptyArray = new Array[Boolean](0) } diff --git a/src/library/scala/Byte.scala b/src/library/scala/Byte.scala index 02ef913fc5..df0d2c73b1 100644 --- a/src/library/scala/Byte.scala +++ b/src/library/scala/Byte.scala @@ -625,14 +625,6 @@ object Byte extends AnyValCompanion { */ override def toString = "object scala.Byte" - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Byte] - */ - final val emptyArray = new Array[Byte](0) - /** Language mandated coercions from Byte to "wider" types. */ implicit def byte2short(x: Byte): Short = x.toShort diff --git a/src/library/scala/Char.scala b/src/library/scala/Char.scala index 5a1bf16f1d..1fa0c0d9e8 100644 --- a/src/library/scala/Char.scala +++ b/src/library/scala/Char.scala @@ -625,14 +625,6 @@ object Char extends AnyValCompanion { */ override def toString = "object scala.Char" - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Char] - */ - final val emptyArray = new Array[Char](0) - /** Language mandated coercions from Char to "wider" types. */ implicit def char2int(x: Char): Int = x.toInt diff --git a/src/library/scala/Double.scala b/src/library/scala/Double.scala index 7bebbf9418..f058d7c26b 100644 --- a/src/library/scala/Double.scala +++ b/src/library/scala/Double.scala @@ -400,13 +400,5 @@ object Double extends AnyValCompanion { /** The String representation of the scala.Double companion object. */ override def toString = "object scala.Double" - - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Double] - */ - final val emptyArray = new Array[Double](0) } diff --git a/src/library/scala/Float.scala b/src/library/scala/Float.scala index 79ed2ac20b..d942acec23 100644 --- a/src/library/scala/Float.scala +++ b/src/library/scala/Float.scala @@ -401,14 +401,6 @@ object Float extends AnyValCompanion { */ override def toString = "object scala.Float" - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Float] - */ - final val emptyArray = new Array[Float](0) - /** Language mandated coercions from Float to "wider" types. */ implicit def float2double(x: Float): Double = x.toDouble diff --git a/src/library/scala/Int.scala b/src/library/scala/Int.scala index fa2f9a97e7..ae36413469 100644 --- a/src/library/scala/Int.scala +++ b/src/library/scala/Int.scala @@ -625,14 +625,6 @@ object Int extends AnyValCompanion { */ override def toString = "object scala.Int" - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Int] - */ - final val emptyArray = new Array[Int](0) - /** Language mandated coercions from Int to "wider" types. */ implicit def int2long(x: Int): Long = x.toLong diff --git a/src/library/scala/Long.scala b/src/library/scala/Long.scala index 94204e893c..4ee9383c2a 100644 --- a/src/library/scala/Long.scala +++ b/src/library/scala/Long.scala @@ -625,14 +625,6 @@ object Long extends AnyValCompanion { */ override def toString = "object scala.Long" - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Long] - */ - final val emptyArray = new Array[Long](0) - /** Language mandated coercions from Long to "wider" types. */ implicit def long2float(x: Long): Float = x.toFloat diff --git a/src/library/scala/Short.scala b/src/library/scala/Short.scala index aef8608d2e..35c5fe3ff0 100644 --- a/src/library/scala/Short.scala +++ b/src/library/scala/Short.scala @@ -625,14 +625,6 @@ object Short extends AnyValCompanion { */ override def toString = "object scala.Short" - - /** A highly reusable empty array, useful for avoiding - * allocations when you need one. - * - * @return a constant 0-length Array[Short] - */ - final val emptyArray = new Array[Short](0) - /** Language mandated coercions from Short to "wider" types. */ implicit def short2int(x: Short): Int = x.toInt diff --git a/test/files/run/empty-array.scala b/test/files/run/empty-array.scala index e56c86df5c..6e37dca37d 100644 --- a/test/files/run/empty-array.scala +++ b/test/files/run/empty-array.scala @@ -1,8 +1,8 @@ object Test { def main(args: Array[String]): Unit = { - println(Byte.emptyArray.length) - println(Double.emptyArray.length) - println(Boolean.emptyArray.length) + println(Array.emptyByteArray.length) + println(Array.emptyDoubleArray.length) + println(Array.emptyBooleanArray.length) // okay okay okay } } -- cgit v1.2.3