summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2012-11-16 15:57:11 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2012-11-16 15:57:11 -0800
commit52ec695a98608128be2429d813fc5a045a092988 (patch)
treec620fe7acb58fcbe59196153b9face7b1b80a3ed /test
parent6645fec23ab3ee7d12f5cfc7c474a42f0eb7ec15 (diff)
parenta7cc894ff2b4c5b661890272ec401cde12da3f9e (diff)
downloadscala-52ec695a98608128be2429d813fc5a045a092988.tar.gz
scala-52ec695a98608128be2429d813fc5a045a092988.tar.bz2
scala-52ec695a98608128be2429d813fc5a045a092988.zip
Merge pull request #1586 from retronym/ticket/6247
Optimize primitive Array(e1, ..., en)
Diffstat (limited to 'test')
-rw-r--r--test/files/instrumented/t6611.scala24
-rw-r--r--test/files/run/t6611.scala63
2 files changed, 82 insertions, 5 deletions
diff --git a/test/files/instrumented/t6611.scala b/test/files/instrumented/t6611.scala
index 821d5f3fbf..4c52f8a5ef 100644
--- a/test/files/instrumented/t6611.scala
+++ b/test/files/instrumented/t6611.scala
@@ -5,7 +5,29 @@ object Test {
startProfiling()
// tests optimization in Cleanup for varargs reference arrays
- val a = Array("")
+ Array("")
+
+
+ Array(true)
+ Array(true, false)
+ Array(1: Byte)
+ Array(1: Byte, 2: Byte)
+ Array(1: Short)
+ Array(1: Short, 2: Short)
+ Array(1)
+ Array(1, 2)
+ Array(1L)
+ Array(1L, 2L)
+ Array(1d)
+ Array(1d, 2d)
+ Array(1f)
+ Array(1f, 2f)
+
+ /* Not currently optimized:
+ Array[Int](1, 2) etc
+ Array(())
+ Array((), ())
+ */
stopProfiling()
printStatistics()
diff --git a/test/files/run/t6611.scala b/test/files/run/t6611.scala
index c0297372f0..c295368aea 100644
--- a/test/files/run/t6611.scala
+++ b/test/files/run/t6611.scala
@@ -1,6 +1,61 @@
object Test extends App {
- val a = Array("1")
- val a2 = Array(a: _*)
- a2(0) = "2"
- assert(a(0) == "1")
+ locally {
+ val a = Array("1")
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array("1": Object)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(true)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(1: Short)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(1: Byte)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(1)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(1L)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(1f)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(1d)
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
+
+ locally {
+ val a = Array(())
+ val a2 = Array(a: _*)
+ assert(a ne a2)
+ }
}