diff options
Diffstat (limited to 'test/files/pos/viewtest3.scala')
-rw-r--r-- | test/files/pos/viewtest3.scala | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/test/files/pos/viewtest3.scala b/test/files/pos/viewtest3.scala deleted file mode 100644 index aa7b2ec539..0000000000 --- a/test/files/pos/viewtest3.scala +++ /dev/null @@ -1,60 +0,0 @@ -package testview; - -trait Tree[+a <% Ordered[a]] { - def insert[c >: b, b >: a <: c](x: b)(implicit d: c => Ordered[c]): Tree[b] - def elements: List[a] -} - -object Empty extends Tree[All] { - def insert[c >: b, b >: a <: c](x: b)(implicit d: c => Ordered[c]): Tree[b] = - new Node(x, Empty, Empty); - def elements: List[All] = List(); -} - -class Node[a <% Ordered[a]](elem: a, l: Tree[a], r: Tree[a]) extends Tree[a] { - def insert[c >: b, b >: a <: c](x: b)(implicit d: c => Ordered[c]): Tree[b] = - if (x == elem) this - else if (x < elem) new Node(elem, l insert x, r) - else new Node(elem, l, r insert x); - def elements: List[a] = - l.elements ::: List(elem) ::: r.elements -} - -case class Str(elem: String) extends Ordered[Str] { - def compare[b >: Str <% Ordered[b]](that: b): int = that match { - case that1: Str => this.elem compare that1.elem - case _ => -(that compare this) - } -} - -object Test { -// import O.view; - - private def toCharList(s: String): List[Char] = - if (s.length() == 0) List() - else s.charAt(0) :: toCharList(s.substring(1)); - - def main(args: Array[String]) = { - { - var t: Tree[String] = Empty; - for (val s <- args) { - t = t insert s - } - System.out.println(t.elements) - } - { - var t: Tree[Str] = Empty; - for (val s <- args) { - t = t insert Str(s) - } - System.out.println(t.elements) - } - { - var t: Tree[List[char]] = Empty; - for (val s <- args) { - t = t insert toCharList(s) - } - System.out.println(t.elements) - } - } -} |