summaryrefslogtreecommitdiff
path: root/test-nsc/files/pos/simplelists.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test-nsc/files/pos/simplelists.scala')
-rwxr-xr-xtest-nsc/files/pos/simplelists.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/test-nsc/files/pos/simplelists.scala b/test-nsc/files/pos/simplelists.scala
new file mode 100755
index 0000000000..73b04a8762
--- /dev/null
+++ b/test-nsc/files/pos/simplelists.scala
@@ -0,0 +1,17 @@
+ abstract class List[+a] {
+ def head: a;
+ def tail: List[a];
+ def cons[b >: a](x: b): List[b] = new Cons[b, a](x, this);
+ }
+
+ object Nil extends List[All] {
+ def error(msg: String): All = throw new java.lang.Error(msg);
+ def head: All = error("Nil.head");
+ def tail: List[All] = error("Nil.tail");
+ }
+
+ class Cons[c, d <: c](x: c, xs: List[d]) extends List[c] {
+ def head: c = x;
+ def tail: List[c] = xs;
+ }
+