summaryrefslogtreecommitdiff
path: root/test/files/pos/viewtest2.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-10-03 13:42:39 +0000
committerMartin Odersky <odersky@gmail.com>2005-10-03 13:42:39 +0000
commit2994973970bcba6ff90d7788e79f2042cc11deaf (patch)
treeb90fbfc9d5b12b01f2815edabb2f0eeb17655a94 /test/files/pos/viewtest2.scala
parent159a3633b593bf2b0a10f4f4e218489b2bba03bc (diff)
downloadscala-2994973970bcba6ff90d7788e79f2042cc11deaf.tar.gz
scala-2994973970bcba6ff90d7788e79f2042cc11deaf.tar.bz2
scala-2994973970bcba6ff90d7788e79f2042cc11deaf.zip
*** empty log message ***
Diffstat (limited to 'test/files/pos/viewtest2.scala')
-rwxr-xr-xtest/files/pos/viewtest2.scala12
1 files changed, 7 insertions, 5 deletions
diff --git a/test/files/pos/viewtest2.scala b/test/files/pos/viewtest2.scala
index 0d580418d0..1958696c1f 100755
--- a/test/files/pos/viewtest2.scala
+++ b/test/files/pos/viewtest2.scala
@@ -24,20 +24,20 @@ trait Ordered[+a] {
object O {
- def view (x: String): Ordered[String] = new Ordered[String] {
+ implicit def view1(x: String): Ordered[String] = new Ordered[String] {
def compareTo [b >: String <% Ordered[b]](y: b): int = y match {
case y1: String => x compareTo y1;
case _ => -(y compareTo x)
}
}
- def view (x: char): Ordered[char] = new Ordered[char] {
+ implicit def view2(x: char): Ordered[char] = new Ordered[char] {
def compareTo [b >: char <% Ordered[b]](y: b): int = y match {
case y1: char => x - y1;
case _ => -(y compareTo x)
}
}
- def view[a <% Ordered[a]](x: List[a]): Ordered[List[a]] =
+ implicit def view3[a <% Ordered[a]](x: List[a]): Ordered[List[a]] =
new Ordered[List[a]] {
def compareTo [b >: List[a] <% Ordered[b]](y: b): int = y match {
case y1: List[a] => compareLists(x, y1);
@@ -54,6 +54,8 @@ object O {
}
}
}
+
+ implicit def view4[a](x: a): a = x;
}
trait Tree[+a <% Ordered[a]] {
@@ -66,7 +68,7 @@ object Empty extends Tree[All] {
def elements: List[All] = List();
}
-class Node[+a <% Ordered[a]](elem: a, l: Tree[a], r: Tree[a]) extends Tree[a] {
+class Node[a <% Ordered[a]](elem: a, l: Tree[a], r: Tree[a]) extends Tree[a] {
def insert[b >: a <% Ordered[b]](x: b): Tree[b] =
if (x == elem) this
else if (x < elem) new Node(elem, l insert x, r)
@@ -83,7 +85,7 @@ case class Str(elem: String) extends Ordered[Str] {
}
object Test {
- import O.view;
+ import O._;
private def toCharList(s: String): List[Char] =
if (s.length() == 0) List()