blob: bde259e4facc4ae06587f22c9379fa6da92c554a (
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
|
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 : Manifest, @specialized(scala.Int) V <% Ordered[V]] {
val u: U
val v: V
def f(t: T, v2: V): Tuple2[U, V] = {
val m: Array[U] = null
if (m.isEmpty) {
(u, v)
} else {
(u, v2)
}
}
}
|