aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-03-16 21:37:51 +0100
committerTobias Schlatter <tobias@meisch.ch>2014-03-21 11:24:04 +0100
commit2c2ab10958e27ced276c9906f18a67c1eddd1928 (patch)
tree0582e9750a1f29722d61efe639048d66ff6bbeaa /tests
parent6436fa67e561442ef2e2d9b99852a50f323ccacc (diff)
downloaddotty-2c2ab10958e27ced276c9906f18a67c1eddd1928.tar.gz
dotty-2c2ab10958e27ced276c9906f18a67c1eddd1928.tar.bz2
dotty-2c2ab10958e27ced276c9906f18a67c1eddd1928.zip
Fix of t0786: view bounds
Previously, only implicit method types were eligible as views. This is too strict, as it rules out view bounds. We now also consider types that derive from Function1. The reason for not allowing any type is that this would cause us to check many more types for applicability when an implicit view is searched.
Diffstat (limited to 'tests')
-rw-r--r--tests/pos/t0786.scala (renamed from tests/untried/pos/t0786.scala)6
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/untried/pos/t0786.scala b/tests/pos/t0786.scala
index b347b0bc5..b320de0ed 100644
--- a/tests/untried/pos/t0786.scala
+++ b/tests/pos/t0786.scala
@@ -7,15 +7,15 @@ object ImplicitProblem {
def eval: Int
}
- implicit def toRep0(n: Int): ImplicitProblem.Rep[Int] = new Rep[Int] {
+ implicit def toRep0(n: Int): Rep[Int] = new Rep[Int] {
def eval = 0
}
- implicit def toRepN[T](n: M[T])(implicit f: T => Rep[T]): ImplicitProblem.Rep[ImplicitProblem.M[T]] = new Rep[M[T]] {
+ implicit def toRepN[T](n: M[T])(implicit f: T => Rep[T]): Rep[M[T]] = new Rep[M[T]] {
def eval = f(nullval[T]).eval + 1
}
- def depth[T <% Rep[T]](n: T) = n.eval
+ def depth[T](n: T)(implicit ev: T => Rep[T]) = n.eval
def main(args: Array[String]): Unit = {
println(depth(nullval[M[Int]])) // (1) this works