summaryrefslogtreecommitdiff
path: root/test/files/specialized/spec-init.scala
diff options
context:
space:
mode:
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)
+ }
+}