aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/pos/spec-simple.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/pos/spec-simple.scala')
-rw-r--r--tests/untried/pos/spec-simple.scala51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/untried/pos/spec-simple.scala b/tests/untried/pos/spec-simple.scala
new file mode 100644
index 000000000..19b660688
--- /dev/null
+++ b/tests/untried/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: Unit = {
+ 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
+ }
+}
+*/