summaryrefslogtreecommitdiff
path: root/test/files/specialized/spec-init.scala
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-17 15:18:06 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-17 15:18:06 +0000
commit16e7ad360d1a902d6bd5c845642dbe14bcecdb9d (patch)
treea189e624a75dbb47a689a821208b41b0141e2ee0 /test/files/specialized/spec-init.scala
parentbe2778d50f1a73a941c6ffe6355f0ed401d6d8eb (diff)
downloadscala-16e7ad360d1a902d6bd5c845642dbe14bcecdb9d.tar.gz
scala-16e7ad360d1a902d6bd5c845642dbe14bcecdb9d.tar.bz2
scala-16e7ad360d1a902d6bd5c845642dbe14bcecdb9d.zip
Adapted specialization tests to track number of...
Adapted specialization tests to track number of boxings. Review by dragos
Diffstat (limited to 'test/files/specialized/spec-init.scala')
-rw-r--r--test/files/specialized/spec-init.scala42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/files/specialized/spec-init.scala b/test/files/specialized/spec-init.scala
new file mode 100644
index 0000000000..94cd0ee82b
--- /dev/null
+++ b/test/files/specialized/spec-init.scala
@@ -0,0 +1,42 @@
+class Foo[@specialized(Int) T](_x: T) {
+ val x = _x
+ def bar {}
+
+ val y = x
+ println(x)
+ println(y)
+
+ def baz {}
+ val z = y
+ println(z)
+}
+
+class Bar[@specialized(Int) T] {
+ def foo(x: T) = print(x)
+}
+
+object Global {
+ var msg = "ok"
+}
+
+class TouchGlobal[@specialized(Int) T](_x: T) {
+ println(Global.msg)
+ val x = {
+ Global.msg = "not ok"
+ _x
+ }
+}
+
+object Test {
+ def main(args: Array[String]) {
+ (new Foo("abc"))
+ println("shouldn't see two initialized values and one uninitialized")
+ (new Foo(42))
+
+ (new TouchGlobal(new Object))
+ Global.msg = "ok" // reset the value
+ (new TouchGlobal(42))
+
+ println(runtime.BoxesRunTime.integerBoxCount)
+ }
+}