blob: 6aeed4049145a4286575109e62e605260ea013f3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
|
object test {
class List[+a] {
def ::[b >: a](x: b): List[b] = new Cons(x, this)
}
case class Cons[a, b <: a](x: a, xs: List[b]) extends List[a]
case object Nil extends List[Nothing]
def nil[n]: List[n] = Nil
def cons[a](x: a, xs: List[a]): List[a] = null
val x: List[Int] = Nil.::(1)
val y: List[Int] = nil.::(1)
}
|