File: t2782.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (18 lines) | stat: -rw-r--r-- 606 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import scala.{collection => sc}

object Test {
  trait Foo[T]

  // Haven't managed to repro without using a CanBuild or CanBuildFrom implicit parameter
  implicit def MapFoo[A, B, M[A, B] <: sc.Map[A,B]](implicit aFoo: Foo[A], bFoo: Foo[B], cb: sc.generic.CanBuild[(A, B), M[A, B]]) = new Foo[M[A,B]] {}
  implicit object Tuple2IntIntFoo extends Foo[(Int, Int)] // no difference if this line is uncommented
  implicit def Tuple2Foo[A, B] = new Foo[(A, B)] {}       // nor this one

  implicitly[Foo[(Int, Int)]]
}

class A {
  def x[N[X] >: M[X], M[_], G](n: N[G], m: M[G]) = null

  x(Some(3), Seq(2))
}