diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2011-01-17 15:18:06 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2011-01-17 15:18:06 +0000 |
commit | 16e7ad360d1a902d6bd5c845642dbe14bcecdb9d (patch) | |
tree | a189e624a75dbb47a689a821208b41b0141e2ee0 /test/files/specialized/spec-init.scala | |
parent | be2778d50f1a73a941c6ffe6355f0ed401d6d8eb (diff) | |
download | scala-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.scala | 42 |
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) + } +} |