summaryrefslogtreecommitdiff
path: root/test/files/pos/simplelists.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/pos/simplelists.scala')
-rw-r--r--test/files/pos/simplelists.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/files/pos/simplelists.scala b/test/files/pos/simplelists.scala
new file mode 100644
index 0000000000..143bbdd77b
--- /dev/null
+++ b/test/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 = new java.lang.Error(msg).throw;
+ 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;
+ }
+