aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/t2399.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/t2399.scala')
-rw-r--r--tests/pos/t2399.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/pos/t2399.scala b/tests/pos/t2399.scala
new file mode 100644
index 000000000..a99998a0a
--- /dev/null
+++ b/tests/pos/t2399.scala
@@ -0,0 +1,14 @@
+trait That1[A]
+trait That2[A, R <: That2[A, R]]
+
+trait T[A, This >: Null <: That1[A] with T[A, This]] extends That2[A, This] {
+ self: This =>
+
+ private var next: This = _
+ def isEmpty = next eq null
+
+ def length: Int = {
+ def loop(x: This, cnt: Int): Int = if (x.isEmpty) cnt else loop(x.next, cnt + 1)
+ loop(self, 0)
+ }
+}