diff options
author | Martin Odersky <odersky@gmail.com> | 2014-03-16 21:37:51 +0100 |
---|---|---|
committer | Tobias Schlatter <tobias@meisch.ch> | 2014-03-21 11:24:04 +0100 |
commit | 2c2ab10958e27ced276c9906f18a67c1eddd1928 (patch) | |
tree | 0582e9750a1f29722d61efe639048d66ff6bbeaa /tests | |
parent | 6436fa67e561442ef2e2d9b99852a50f323ccacc (diff) | |
download | dotty-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 |