summaryrefslogblamecommitdiff
path: root/test/files/pos/spec-doubledef-new.scala
blob: 33f1e82b6ea79da6717c9c4bc61818eeec90a870 (plain) (tree)
1
2
3
4
5




                                                                          








                                                                   
 
                                                                                                   











                                      
object Test {
  def fn[@specialized T, @specialized U](t : T => Int, u : U => Int) : T =
    null.asInstanceOf[T]
}

trait A[@specialized(Int) T] {
  var value: T
  def getWith[@specialized(Int) Z](f: T => Z) = f(value)
}

class C extends A[Int] {
  var value = 10
  override def getWith[@specialized(Int) Z](f: Int => Z) = f(value)
}

abstract class B[T, @specialized(scala.Int) U : TypeTag, @specialized(scala.Int) V <% Ordered[V]] {
    val u: U
    val v: V

    def f(t: T, v2: V): Pair[U, V] = {
        val m: Array[U] = null
        if (m.isEmpty) {
            Pair(u, v)
        } else {
            Pair(u, v2)
        }
    }
}