summaryrefslogblamecommitdiff
path: root/test/files/pos/implicits.scala
blob: 14241a26552b62e615a9ec434e5435039d24791b (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                             










                                     































                                                         

                 
                                                                                                                          


                                             




                            
// #1435
object t1435 {
  implicit def a(s:String):String = error("")
  implicit def a(i:Int):String = error("")
  implicit def b(i:Int):String = error("")
}

class C1435 {
  val v:String = {
    import t1435.a
    2
  }
}

// #1492
class C1492 {

  class X

  def foo(x: X => X) {}

  foo ( implicit x => implicitly[X] )
  foo { implicit x => implicitly[X] }
}

// #1579
object Test1579 {
  class Column
  class Query[E](val value: E)
  class Invoker(q: Any) { val foo = null }

  implicit def unwrap[C](q: Query[C]) = q.value
  implicit def invoker(q: Query[Column]) = new Invoker(q)

  val q = new Query(new Column)
  q.foo
}
// #1625
object Test1625 {

  class Wrapped(x:Any) {
    def unwrap() = x
  }

  implicit def byName[A](x: =>A) = new Wrapped(x)

  implicit def byVal[A](x: A) = x

  def main(args: Array[String]) = {

//    val res:Wrapped = 7 // works

    val res = 7.unwrap() // doesn't work

    println("=> result: " + res)
  }
}

object Test2188 {
  implicit def toJavaList[A: ClassManifest](t:collection.Seq[A]):java.util.List[A] = java.util.Arrays.asList(t.toArray:_*)

  val x: java.util.List[String] = List("foo")
}

object TestNumericWidening {
  val y = 1
  val x: java.lang.Long = y
}