summaryrefslogtreecommitdiff
path: root/test/files/pos/implicits-old.scala
blob: 62ae6b835c4bdb10910e5120bab11bca6cf645bd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// #1435
object t1435 {
  implicit def a(s:String):String = sys.error("")
  implicit def a(i:Int):String = sys.error("")
  implicit def b(i:Int):String = sys.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
}

// #2709
package foo2709 {
  class A
  class B

  package object bar {
    implicit def a2b(a: A): B = new B
  }

  package bar {
    object test {
      new A: B
    }
  }
}

// Problem with specs
object specsProblem {
  println(implicitly[Manifest[Class[_]]])
}