summaryrefslogtreecommitdiff
path: root/test/files/pos/spec-simple.scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-06-18 17:19:55 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-06-18 17:19:55 +0000
commit3ee6b3653f8c25d7d6b19b9f5d4af7fa082146a8 (patch)
treee97b8c0dd8d61e82f825f528f98842f777621f7a /test/files/pos/spec-simple.scala
parentbe8e3c69114da5bc3020d5363b338b1c83aa22ef (diff)
downloadscala-3ee6b3653f8c25d7d6b19b9f5d4af7fa082146a8.tar.gz
scala-3ee6b3653f8c25d7d6b19b9f5d4af7fa082146a8.tar.bz2
scala-3ee6b3653f8c25d7d6b19b9f5d4af7fa082146a8.zip
Specialization landed in trunk.
Diffstat (limited to 'test/files/pos/spec-simple.scala')
-rw-r--r--test/files/pos/spec-simple.scala51
1 files changed, 51 insertions, 0 deletions
diff --git a/test/files/pos/spec-simple.scala b/test/files/pos/spec-simple.scala
new file mode 100644
index 0000000000..66a48d155e
--- /dev/null
+++ b/test/files/pos/spec-simple.scala
@@ -0,0 +1,51 @@
+class Foo[@specialized T] {
+ var v: T = _
+
+ def foo(x: T): T = x
+
+ println("abc")
+
+ class Bar[@specialized U] {
+ def bar(x: U): T = v
+// def barInt(x: Int): T = bar(x.asInstanceOf[U])
+ }
+}
+
+class Test {
+ def test {
+ val a = new Foo[Int]
+ val b = new a.Bar[Int]
+ a.foo(10)
+ b.bar(11)
+ }
+}
+
+/*
+abstract class Foo[@specialized T] {
+ def foo(x: T): T
+ def foo$Int(x: Int): Int
+
+ abstract class Bar[@specialized U] {
+ def bar(x: U): T
+ def bar$Int(x: Int): T
+ }
+ abstract class Bar$Int extends Bar[Int] {
+ def bar(x: Int): T = bar$Int(x)
+ def bar$Int(x: Int): T
+ }
+}
+
+abstract class Foo$Int extends Foo[Int] {
+ def foo(x: Int): Int = foo$Int(x)
+ def foo$Int(x: Int): Int
+
+ abstract class Bar[@specialized U] {
+ def bar(x: U): Int
+ def bar$Int(x: Int): Int
+ }
+ abstract class Bar$Int extends Bar[Int] {
+ def bar(x: Int): Int = bar$Int(x)
+ def bar$Int(x: Int): Int
+ }
+}
+*/